Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Uma classe base poderosa para desenvolver controlos OLE.
Sintaxe
class COleControl : public CWnd
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| COleControl::COleControl::COleControl | Cria um COleControl objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| COleControl::AmbientAparência | Recupera a aparência atual do controlo. |
| COleControl::AmbienteBackColor | Devolve o valor da propriedade BackColor ambiente. |
| COleControl::AmbientDisplayName | Devolve o nome do controlo conforme especificado pelo contentor. |
| COleControl::AmbientFont | Devolve o valor da propriedade ambiente Font. |
| COleControl::AmbientForeColor | Devolve o valor da propriedade ForeColor ambiente. |
| COleControl::AmbientLocaleID | Devolve o ID de localização do contentor. |
| COleControl::AmbientScaleUnits | Devolve o tipo de unidades usadas pelo contentor. |
| COleControl::AmbientShowGrabHandles | Determina se as alças de garra devem ser exibidas. |
| COleControl::AmbientShowHatching | Determina se a hachura deve ser exibida. |
| COleControl::AmbientTextAlign | Devolve o tipo de alinhamento do texto especificado pelo contentor. |
| COleControl::AmbientUIDead | Determina se o controlo deve responder a ações da interface de utilizador. |
| COleControl::AmbientUserMode | Determina o modo do contentor. |
| COleControl::BoundPropertyChanged | Notifica o contentor que uma propriedade vinculada foi alterada. |
| COleControl::BoundPropertyRequestEdit | Solicita autorização para editar o valor da propriedade. |
| COleControl::ClienteParaPai | Traduz um ponto relativo à origem do controlo para um ponto relativo à origem do seu contentor. |
| COleControl::ClipCaretRect | Ajusta um retângulo de caret se este for sobreposto por um controlo. |
| COleControl::ControlInfoChanged | Chame esta função depois de o conjunto de mnemónicos tratados pelo controlo ter mudado. |
| COleControl::D isplayError | Apresenta eventos de erro originais ao utilizador do controlo. |
| COleControl::D oClick | Implementação do método do stock DoClick . |
| COleControl::D oPropExchange | Serializa as propriedades de um COleControl objeto. |
| COleControl::D oSuperclassPaint | Redesenha um controlo OLE que foi subclassificado a partir de um controlo Windows. |
| COleControl::EnableSimpleFrame | Permite suporte simples de frames para um controlo. |
| COleControl::ExchangeExtent | Serializa a largura e altura do controlo. |
| COleControl::ExchangeStockProps | Serializa as propriedades originais do controlo. |
| COleControl::ExchangeVersion | Serializa o número de versão do controlo. |
| COleControl::FireClick | Dispara o evento de ações Click . |
| COleControl::FireDblClick | Dispara o evento de ações DblClick . |
| COleControl::FireError | Dispara o evento de ações Error . |
| COleControl::FireEvent | Dispara um evento personalizado. |
| COleControl::FireKeyDown | Dispara o evento de ações KeyDown . |
| COleControl::FireKeyPress | Dispara o evento de ações KeyPress . |
| COleControl::FireKeyUp | Dispara o evento de ações KeyUp . |
| COleControl::FireMouseDown | Dispara o evento de ações MouseDown . |
| COleControl::FireMouseMove | Dispara o evento de ações MouseMove . |
| COleControl::FireMouseUp | Dispara o evento de ações MouseUp . |
| COleControl::FireReadyStateChange | Dispara um evento quando o estado de prontidão do comando muda. |
| COleControl::GetActivationPolicy | Altera o comportamento de ativação padrão de um controlo que suporta a IPointerInactive interface. |
| COleControl::GetAmbientProperty | Devolve o valor da propriedade ambiente especificada. |
| COleControl::GetAppearance | Devolve o valor da propriedade de aparência da ação. |
| COleControl::GetBackColor | Devolve o valor da propriedade BackColor da ação. |
| COleControl::GetBorderStyle | Devolve o valor da propriedade BorderStyle de ações. |
| COleControl::GetCapture | Determina se um objeto de controlo ativado e sem janelas tem a captura do rato. |
| COleControl::GetClassID | Recupera o ID da classe OLE do controlo. |
| COleControl::GetClientOffset | Recupera a diferença entre o canto superior esquerdo da área retangular do controlo e o canto superior esquerdo da sua área do cliente. |
| COleControl::GetClientRect | Recupera o tamanho da área do cliente do controlo. |
| COleControl::GetClientSite | Consulta um objeto para o ponteiro do seu local cliente atual dentro do seu contentor. |
| COleControl::GetControlFlags | Recupera as definições da flag de controlo. |
| COleControl::GetControlSize | Devolve a posição e o tamanho do controlo OLE. |
| COleControl::GetDC | Fornece um meio para um controlo sem janelas obter o contexto de um dispositivo a partir do seu contentor. |
| COleControl::GetEnabled | Devolve o valor da propriedade habilitada em ações. |
| COleControl::GetExtendedControl | Recupera um ponteiro para um objeto de controlo estendido pertencente ao contentor. |
| COleControl::GetFocus | Determina se o controlo tem o foco. |
| COleControl::GetFont | Devolve o valor da propriedade Font de origem. |
| COleControl::GetFontTextMetrics | Devolve as métricas de um CFontHolder objeto. |
| COleControl::GetForeColor | Devolve o valor da propriedade ForeColor da ação. |
| COleControl::GetHwnd | Devolve o valor da propriedade da ação. |
| COleControl::GetMessageString | Fornece texto na barra de estado para um item do menu. |
| COleControl::GetNotSupported | Impede o acesso do utilizador ao valor da propriedade de um controlo. |
| COleControl::GetReadyState | Devolve o estado de prontidão do controlo. |
| COleControl::GetRectInContainer | Devolve o retângulo do controlo em relação ao seu contentor. |
| COleControl::GetStockTextMetrics | Devolve as métricas da propriedade Font de origem. |
| COleControl::GetText | Devolve o valor da propriedade Texto ou Legenda da ação. |
| COleControl::GetSenseWindowDropTarget | Override para permitir que um controlo sem janelas seja o alvo das operações de arrastar e largar. |
| COleControl::InicializeIIDs | Informa a classe base dos IIDs que o controlo irá utilizar. |
| COleControl::InternalGetFont | Devolve um CFontHolder objeto para a propriedade Font de origem. |
| COleControl::InternalGetText | Recupera a propriedade original Legenda ou Texto. |
| COleControl::InternoSetReadyState | Define o estado de prontidão do controlo e dispara o evento de mudança de estado pronto. |
| COleControl::InvalidateControl | Invalida uma área do controlo exibido, fazendo com que seja redesenhada. |
| COleControl::InvalidateRgn | Invalida a área do cliente da janela do contentor dentro da região dada. Pode ser usado para redesenhar controlos sem janelas na região. |
| COleControl::IsConvertingVBX | Permite uma carga especializada de um controlo OLE. |
| COleControl::IsModified | Determina se o estado de controlo mudou. |
| COleControl::IsOptimizedDraw | Indica se o contentor suporta desenho otimizado para a operação de desenho atual. |
| COleControl::IsSubclassedControl | Chamado para determinar se o controlo subclasse um controlo do Windows. |
| COleControl::Load | Reinicia quaisquer dados assíncronos anteriores e inicia uma nova carga da propriedade assíncrona do controlo. |
| COleControl::LockInPlaceActive | Determina se o teu controlo pode ser desativado pelo contentor. |
| COleControl::OnAmbientPropertyChange | É chamada quando uma propriedade ambiente é alterada. |
| COleControl::Na Aparência Alterada | É chamado quando a propriedade Aparência original é alterada. |
| COleControl::OnBackColorChanged | É chamado quando a propriedade BackColor original é alterada. |
| COleControl::OnBorderStyleChanged | É chamado quando a propriedade BorderStyle original é alterada. |
| COleControl::OnClick | Chamado para lançar o evento de clicar de origem. |
| COleControl::OnClose | Notifica o controlo que IOleControl::Close foi chamado. |
| COleControl::OnDoVerb | Chamado após a execução de um verbo de controlo. |
| COleControl::OnDraw | É chamado quando um controlo é solicitado para se redesenhar. |
| COleControl::OnDrawMetafile | Chamado pelo contentor quando um controlo é solicitado a redesenhar-se usando o contexto de um dispositivo de metaficheiro. |
| COleControl::OnEdit | Chamado pelo contentor para ativar UI um controlo OLE. |
| COleControl::OnEnabledAlterado | É chamado quando a propriedade Ativada do stock é alterada. |
| COleControl::OnEnumVerbs | Chamado pelo contentor para enumerar os verbos de um controlo. |
| COleControl::OnEventAdvise | Chamado quando os gestores de eventos estão ligados ou desconectados de um controlo. |
| COleControl::OnFontChanged | É chamado quando a propriedade Fonte original é alterada. |
| COleControl::OnForeColorChanged | É chamado quando a propriedade ForeColor original é alterada. |
| COleControl::OnFreezeEvents | Chamado quando os eventos de um controlo são congelados ou descongelados. |
| COleControl::OnGetColorSet | Notifica o controlo que IOleObject::GetColorSet foi chamado. |
| COleControl::OnGetControlInfo | Fornece informação mnemónica ao contentor. |
| COleControl::OnGetDisplayString | Chamado para obter uma cadeia que represente o valor de uma propriedade. |
| COleControl::OnGetInPlaceMenu | Pede o handle do menu do controlo que será fundido com o menu do contentor. |
| COleControl::OnGetNaturalExtent | Override para recuperar o tamanho de ecrã do controlo mais próximo do modo de tamanho e extensão proposto. |
| COleControl::OnGetPredefinedStrings | Devolve cadeias que representam valores possíveis para uma propriedade. |
| COleControl::OnGetPredefinedValue | Devolve o valor correspondente a uma cadeia pré-definida. |
| COleControl::OnGetViewExtent | Override para recuperar o tamanho das áreas de exibição do controlo (pode ser usado para permitir desenho em duas passagens). |
| COleControl::OnGetViewRect | Override para converter o tamanho do controlo num retângulo a partir de uma posição específica. |
| COleControl::OnGetViewStatus | Override para recuperar o estado de visualização do controlo. |
| COleControl::OnHideToolBars | É chamado pelo contentor quando o controlo está desativado pela interface. |
| COleControl::OnInactive MouseMove | Override para que o contentor do controlo inativo, sob o ponteiro do rato, despache WM_MOUSEMOVE mensagens para o controlo. |
| COleControl::OnInactiveSetCursor | Override para que o contentor do controlo inativo, sob o ponteiro do rato, despache WM_SETCURSOR mensagens para o controlo. |
| COleControl::OnKeyDownEvent | Chamado depois de o evento KeyDown de origem ter sido disparado. |
| COleControl::OnKeyPressEvent | Chamado depois de o evento KeyPress de origem ter sido disparado. |
| COleControl::OnKeyUpEvent | Liguei depois de o evento KeyUp original ter sido disparado. |
| COleControl::OnMapPropertyToPage | Indica qual a página de propriedades a usar para editar uma propriedade. |
| COleControl::OnMnemonic | Chamada quando uma tecla mnemónica do comando foi pressionada. |
| COleControl::OnProperties | Chamado quando o verbo "Properties" do controlo foi invocado. |
| COleControl::OnQueryHitPoint | Override para questionar se o ecrã de um controlo se sobrepõe a um dado ponto. |
| COleControl::OnQueryHitRect | Override para questionar se o ecrã de um controlo se sobrepõe a qualquer ponto de um dado retângulo. |
| COleControl::OnRenderData | Chamado pelo framework para recuperar dados no formato especificado. |
| COleControl::OnRenderFileData | Chamada pelo framework para recuperar dados de um ficheiro no formato especificado. |
| COleControl::OnRenderGlobalData | Chamado pelo framework para recuperar dados da memória global no formato especificado. |
| COleControl::OnResetState | Redefine as propriedades de um controlo para os valores padrão. |
| COleControl::OnSetClientSite | Notifica o controlo que IOleControl::SetClientSite foi chamado. |
| COleControl::OnSetData | Substitui os dados do controlo por outro valor. |
| COleControl::OnSetExtent | Chamado depois de a extensão do controlo ter mudado. |
| COleControl::OnSetObjectRects | Chamado depois de as dimensões do controlo terem sido alteradas. |
| COleControl::OnShowToolBars | Chamo quando o controlo está ativado pela interface. |
| COleControl::OnTextChanged | É chamado quando a propriedade Texto ou Legenda original é alterada. |
| COleControl::OnWindowLessMessage | Processa mensagens de janela (exceto mensagens de rato e teclado) para controlos sem janelas. |
| COleControl::P arentToClient | Traduz um ponto relativo à origem do contentor para um ponto relativo à origem do controlo. |
| COleControl::P ostModalDialog | Notifica o contentor que uma caixa de diálogo modal foi encerrada. |
| COleControl::P reModalDialog | Notifica o contentor que uma caixa de diálogo modal está prestes a ser exibida. |
| COleControl::RecreateControlWindow | Destrói e recria a janela do controlo. |
| COleControl::Atualizar | Força uma repintura da aparência de um comando. |
| COleControl::ReleaseCapture | Liberta a captura do rato. |
| COleControl::ReleaseDC | Liberta o contexto do dispositivo de visualização de um contentor de um controlo sem janelas. |
| COleControl::ReparentControlWindow | Reinicia o pai da janela de controlo. |
| COleControl::ResetStockProps | Inicializa COleControl as propriedades originais para os seus valores padrão. |
| COleControl::ResetVersão | Inicializa o número de versão a um dado valor. |
| COleControl::ScrollWindow | Permite que um controlo sem janelas percorra uma área dentro da sua imagem ativa no ecrã. |
| COleControl::SelectFontObject | Seleciona uma propriedade Fonte personalizada no contexto de um dispositivo. |
| COleControl::SelectStockFont | Seleciona a propriedade Fonte original num contexto de dispositivo. |
| COleControl::SerializeExtent | Serializa ou inicializa o espaço de exibição do controlo. |
| COleControl::SerializarStockProps | Serializa ou inicializa as COleControl propriedades do stock. |
| COleControl::SerializeVersion | Serializa ou inicializa a informação de versão do controlo. |
| COleControl::SetAparência | Define o valor da propriedade de aparência da ação. |
| COleControl::SetBackColor | Define o valor da propriedade BackColor do stock. |
| COleControl::SetBorderStyle | Define o valor da propriedade BorderStyle de ações. |
| COleControl::SetCapture | Faz com que a janela do contentor do controlo tome posse da captura do rato em nome do controlo. |
| COleControl::SetControlSize | Define a posição e o tamanho do controlo OLE. |
| COleControl::SetEnabled | Define o valor da propriedade Habilitada em ações. |
| COleControl::SetFocus | Faz com que a janela do contentor do controlo assuma o foco de entrada em nome do controlo. |
| COleControl::SetFont | Define o valor da propriedade Fonte de origem. |
| COleControl::SetForeColor | Define o valor da propriedade ForeColor de origem. |
| COleControl::SetInitialSize | Define o tamanho de um controlo OLE quando apresentado pela primeira vez num contentor. |
| COleControl::SetModifiedFlag | Altera o estado modificado de um controlo. |
| COleControl::SetNotAllowed | Indica que um pedido de edição falhou. |
| COleControl::SetNotSupported | Previne a modificação do valor de propriedade de um controlo pelo utilizador. |
| COleControl::SetRectInContainer | Define o retângulo do controlo em relação ao seu recipiente. |
| COleControl::SetText | Define o valor da propriedade Texto ou Legenda de origem. |
| COleControl::ThrowError | Sinais de que ocorreu um erro num controlo OLE. |
| COleControl::TransformCoords | Transforma os valores das coordenadas entre um contentor e o controlo. |
| COleControl::TranslateColor | Converte um valor de OLE_COLOR num valor COLORREF. |
| COleControl::WillAmbientsBeValidDuringLoad | Determina se as propriedades ambientais estarão disponíveis na próxima vez que o controlo for carregado. |
| COleControl::WindowProc | Fornece um procedimento Windows para um COleControl objeto. |
Métodos Protegidos
| Nome | Description |
|---|---|
| COleControl::D rawConteúdo | É chamado pela estrutura quando a aparência do controlo precisa de ser atualizada. |
| COleControl::D rawMetafile | Chamado pelo framework quando o contexto do dispositivo de metaficheiro está a ser utilizado. |
| COleControl::IsInvokeAllowed | Permite a invocação de métodos de automação. |
| COleControl::SetInitialDataFormats | Chamado pelo framework para inicializar a lista de formatos de dados suportados pelo controlo. |
Observações
Derivada de CWnd, esta classe herda toda a funcionalidade de um objeto janela do Windows, mais funcionalidades adicionais específicas do OLE, como disparo de eventos e a capacidade de suportar métodos e propriedades.
Os controlos OLE podem ser inseridos em aplicações de contentores OLE e comunicar com o contentor através de um sistema bidirecional de disparo de eventos e exposição de métodos e propriedades ao contentor. Note que os contentores OLE padrão apenas suportam a funcionalidade básica de um controlo OLE. Não conseguem suportar funcionalidades estendidas de um controlo OLE. O disparo de eventos ocorre quando eventos são enviados para o contentor como resultado de certas ações realizadas no controlo. Por sua vez, o contentor comunica com o controlo usando um conjunto exposto de métodos e propriedades análogos às funções membros e membros de dados de uma classe C++. Esta abordagem permite ao desenvolvedor controlar a aparência do controlo e notificar o contentor quando certas ações ocorrem.
Controlos sem janelas
Os controlos OLE podem ser usados ativos no local sem janela. Os controlos sem janelas têm vantagens significativas:
Os controlos sem janelas podem ser transparentes e não retangulares
Controlos sem janelas reduzem o tamanho da instância e o tempo de criação do objeto
Os controlos não precisam de janela. Os serviços que uma janela oferece podem ser facilmente fornecidos através de uma única janela partilhada (normalmente a do contentor) e um pouco de código de despacho. Ter uma janela é, na maioria das vezes, uma complicação desnecessária no objeto.
Quando a ativação sem janelas é utilizada, o contentor (que tem uma janela) é responsável por fornecer serviços que, de outra forma, seriam prestados pela própria janela do controlo. Por exemplo, se o seu controlo precisar de consultar o foco do teclado, consultar a captura do rato ou obter um contexto de dispositivo, estas operações são geridas pelo contentor. As COleControl funções membros de operação sem janelas invocam estas operações no contentor.
Quando a ativação sem janelas está ativada, o contentor delega mensagens de entrada para a interface do IOleInPlaceObjectWindowless controlo (uma extensão do IOleInPlaceObject para suporte sem janelas).
COleControlA implementação desta interface enviará estas mensagens através do mapa de mensagens do seu controlo, após ajustar as coordenadas do rato adequadamente. Pode processar estas mensagens como mensagens de janela comuns, adicionando as entradas correspondentes ao mapa da mensagem.
Num controlo sem janelas, deve sempre usar as COleControl funções membros em vez das funções membros correspondentes CWnd ou das respetivas funções da API do Windows.
Os objetos de controlo OLE também só podem criar uma janela quando se tornam ativos, mas a quantidade de trabalho necessária para a transição inativo-ativo aumenta e a velocidade da transição diminui. Há casos em que isto é um problema: por exemplo, considere uma grelha de caixas de texto. Ao avançar para cima e para baixo na coluna, cada controlo deve ser ativado no local e depois desativado. A velocidade da transição inativa/ativa afetará diretamente a velocidade de scroll.
Para mais informações sobre o desenvolvimento de um framework de controlo OLE, consulte os artigos MFC ActiveX Controls and Overview: Creating an MFC ActiveX Control Program. Para informações sobre a otimização de controlos OLE, incluindo controlos sem janelas e sem cintilação, veja MFC ActiveX Controls: Optimization.
Hierarquia de herança
COleControl
Requerimentos
Cabeçalho: afxctl.h
COleControl::AmbientBackColor
Devolve o valor da propriedade BackColor ambiente.
OLE_COLOR AmbientBackColor();
Valor de retorno
O valor atual da propriedade BackColor ambiente do contentor, se existir. Se a propriedade não for suportada, esta função devolve a cor de fundo do Windows definida pelo sistema.
Observações
A propriedade BackColor ambiente está disponível para todos os controlos e é definida pelo contentor. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientDisplayName
O nome que o contentor atribuiu ao controlo pode ser usado em mensagens de erro apresentadas ao utilizador.
CString AmbientDisplayName();
Valor de retorno
O nome do controlo OLE. O padrão é uma corda de comprimento zero.
Observações
Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientFont
Devolve o valor da propriedade ambiente Font.
LPFONTDISP AmbientFont();
Valor de retorno
Um apontador para a interface ambiente de despacho de fontes do contentor. O valor padrão é NULL. Se o retorno não for igual a NULL, é responsável por libertar a fonte chamando a função membro IUnknown::Release .
Observações
A propriedade ambiente Font é definida pelo contentor e está disponível para todos os controlos. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientForeColor
Devolve o valor da propriedade ForeColor ambiente.
OLE_COLOR AmbientForeColor();
Valor de retorno
O valor atual da propriedade ForeColor ambiente do contentor, se existir. Se não for suportado, esta função devolve a cor de texto definida pelo sistema do Windows.
Observações
A propriedade ForeColor ambiente está disponível para todos os controlos e é definida pelo contentor. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientLocaleID
Devolve o ID de localização do contentor.
LCID AmbientLocaleID();
Valor de retorno
O valor da propriedade LocaleID do contentor, se existir. Se esta propriedade não for suportada, esta função devolve 0.
Observações
O controlo pode usar o LocaleID para adaptar a sua interface de utilizador a locais específicos. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientAparência
Recupera a definição atual de aparência do objeto de controlo.
short AmbientAppearance();
Valor de retorno
A aparência do controlo:
0 Aparência Flat
1 Aparência 3D
Observações
Chame esta função para recuperar o valor atual da propriedade DISPID_AMBIENT_APPEARANCE para o controlo.
COleControl::AmbientScaleUnits
Devolve o tipo de unidades usadas pelo contentor.
CString AmbientScaleUnits();
Valor de retorno
Uma string contendo as ScaleUnits ambient do contentor. Se esta propriedade não for suportada, esta função devolve uma cadeia de comprimento zero.
Observações
A propriedade ScaleUnits ambiente do contentor pode ser usada para mostrar posições ou dimensões, rotuladas com a unidade escolhida, como twips ou centímetros. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientShowGrabHandles
Determina se o contentor permite ao controlo exibir as alavancas de agarrão por si próprio quando está ativo.
BOOL AmbientShowGrabHandles();
Valor de retorno
Diferente de zero se as alças de garra devem ser exibidas; caso contrário, 0. Se esta propriedade não for suportada, esta função devolve não nula.
Observações
Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientShowHatching
Determina se o contentor permite que o controlo se mostre com um padrão de hachura quando a interface está ativa.
BOOL AmbientShowHatching();
Valor de retorno
Não nulo se o padrão de hachura deve ser mostrado; caso contrário, 0. Se esta propriedade não for suportada, esta função devolve não nula.
Observações
Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientTextAlign
Determina o alinhamento do texto ambiente preferido pelo contentor de controlo.
short AmbientTextAlign();
Valor de retorno
O estado da propriedade ambiente TextAlign do contentor. Se esta propriedade não for suportada, esta função devolve 0.
Segue-se uma lista de valores de retorno válidos:
| Valor de retorno | Meaning |
|---|---|
| 0 | Alinhamento geral (números à direita, texto à esquerda). |
| 1 | A esquerda justifica |
| 2 | Centro |
| 3 | Direita justifica |
Observações
Esta propriedade está disponível para todos os controlos embutidos e é definida pelo contentor. Note que o contentor não é obrigado a suportar esta propriedade.
COleControl::AmbientUIDead
Determina se o contentor quer que o controlo responda a ações da interface de utilizador.
BOOL AmbientUIDead();
Valor de retorno
Diferente de zero se o controlo deve responder a ações da interface de utilizador; caso contrário, 0. Se esta propriedade não for suportada, esta função devolve 0.
Observações
Por exemplo, um contentor pode definir isto para VERDADEIRO no modo de design.
COleControl::AmbientUserMode
Determina se o contentor está em modo de design ou de utilizador.
BOOL AmbientUserMode();
Valor de retorno
Diferente de zero se o contentor estiver em modo utilizador; caso contrário, 0 (em modo de design). Se esta propriedade não for suportada, esta função devolve TRUE.
Observações
Por exemplo, um contentor pode definir isto para FALSE no modo de design.
COleControl::BoundPropertyChanged
Sinaliza que o valor da propriedade limitada mudou.
void BoundPropertyChanged(DISPID dispid);
Parâmetros
dispid
O ID de despacho de uma propriedade vinculada ao controlo.
Observações
Isto deve ser chamado sempre que o valor da propriedade muda, mesmo nos casos em que a alteração não foi feita através do método Set da propriedade. Esteja particularmente atento às propriedades limitadas que são mapeadas para variáveis membro. Sempre que tal variável membro muda, BoundPropertyChanged deve ser chamada.
COleControl::BoundPropertyRequestEdit
Pede permissão à IPropertyNotifySink interface para alterar um valor de propriedade vinculado fornecido pelo controlo.
BOOL BoundPropertyRequestEdit(DISPID dispid);
Parâmetros
dispid
O ID de despacho de uma propriedade vinculada ao controlo.
Valor de retorno
Não nula se a alteração for permitida; caso contrário, 0. O valor padrão é diferente de zero.
Observações
Se a permissão for negada, o controlo não pode permitir que o valor da propriedade mude. Isto pode ser feito ignorando ou falhando a ação que tentou alterar o valor da propriedade.
COleControl::ClienteParaPai
Traduz as coordenadas de pPoint em coordenadas pais.
virtual void ClientToParent(
LPCRECT lprcBounds,
LPPOINT pPoint) const;
Parâmetros
lprcBounds
Apontar para os limites do controlo OLE dentro do contentor. Não a área do cliente, mas a área de todo o controlo, incluindo as fronteiras e as barras de scroll.
pPoint
O apontador para a área cliente OLE deve ser traduzido para as coordenadas do pai (contentor).
Observações
Na entrada , pPoint é relativo à origem da área cliente do controlo OLE (canto superior esquerdo da área cliente do controlo). Na saída , o pPoint é relativo à origem do pai (canto superior esquerdo do contentor).
COleControl::ClipCaretRect
Ajusta um retângulo de caret se este estiver total ou parcialmente coberto por objetos opacos sobrepostos.
BOOL ClipCaretRect(LPRECT lpRect);
Parâmetros
lpRect
Na entrada, um ponteiro para uma estrutura RECT que contém a área do caret a ajustar. Na saída, a área do caret ajustada, ou NULL se o retângulo do caret estiver completamente coberto.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Um caret é uma linha intermitente, bloco ou bitmap que normalmente indica onde o texto ou gráficos serão inseridos.
Um objeto sem janelas não pode mostrar um caret de forma segura sem primeiro verificar se o caret está parcialmente ou totalmente oculto por objetos sobrepostos. Para tornar isso possível, um objeto pode usar ClipCaretRect para ajustar (reduzir) o caret para garantir que ele encaixa na região de clipping.
Os objetos que criam um caret devem submeter o retângulo do caret e ClipCaretRect usar o retângulo ajustado para o caret. Se o caret estiver totalmente oculto, este método devolverá FALSE e o caret não deverá ser mostrado neste caso.
COleControl::COleControl::COleControl
Constrói um COleControl objeto.
COleControl();
Observações
Esta função normalmente não é chamada diretamente. Em vez disso, o controlo OLE é geralmente criado pela sua fábrica de classes.
COleControl::ControlInfoChanged
Chame esta função quando o conjunto de mnemónicos suportados pelo controlo mudou.
void ControlInfoChanged();
Observações
Ao receber esta notificação, o contentor do controlo obtém o novo conjunto de mnemónicas através de uma chamada para IOleControl::GetControlInfo. Note que o contentor não é obrigado a responder a esta notificação.
COleControl::D isplayError
Chamado pelo framework após o evento de erro original ter sido tratado (a menos que o gestor de eventos tenha suprimido a exibição do erro).
virtual void DisplayError(
SCODE scode,
LPCTSTR lpszDescription,
LPCTSTR lpszSource,
LPCTSTR lpszHelpFile,
UINT nHelpID);
Parâmetros
Scode
O valor do código de estado a reportar. Para uma lista completa de possíveis códigos, consulte o artigo Controlos ActiveX: Tópicos Avançados.
lpszDescription
A descrição do erro reportado.
lpszSource
O nome do módulo que gera o erro (tipicamente, o nome do módulo de controlo OLE).
lpszHelpFile
O nome do ficheiro de ajuda que contém uma descrição do erro.
nHelpID
O ID do Contexto de Ajuda do erro que está a ser reportado.
Observações
O comportamento padrão apresenta uma caixa de mensagem contendo a descrição do erro, contida em lpszDescription.
Substitua esta função para personalizar a forma como os erros são apresentados.
COleControl::D oClick
Simula um clique do rato no controlo.
void DoClick();
Observações
Será chamada a função membro sobrescrita COleControl::OnClick , e um evento de clique padrão será disparado, se for suportado pelo controlo.
Esta função é suportada pela COleControl classe base como um método padrão, chamado DoClick. Para mais informações, consulte o artigo Controlos ActiveX: Métodos.
COleControl::D oPropExchange
Chamado pelo framework ao carregar ou armazenar um controlo a partir de uma representação de armazenamento persistente, como um fluxo ou conjunto de propriedades.
virtual void DoPropExchange(CPropExchange* pPX);
Parâmetros
pPX
Um ponteiro para um CPropExchange objeto. A estrutura fornece este objeto para estabelecer o contexto da troca de bens, incluindo a sua direção.
Observações
Esta função normalmente faz chamadas à família PX_ de funções para carregar ou armazenar propriedades específicas definidas pelo utilizador de um controlo OLE.
Se o Control Wizard tiver sido usado para criar o projeto de controlo OLE, a versão sobreposta desta função irá serializar as propriedades padrão suportadas por COleControl com uma chamada à função de classe base, COleControl::DoPropExchange. À medida que adiciona propriedades definidas pelo utilizador ao seu controlo OLE, terá de modificar esta função para serializar as suas novas propriedades. Para mais informações sobre serialização, consulte o artigo Controlos ActiveX: Serialização.
COleControl::D oSuperclassPaint
Redesenha um controlo OLE que foi subclassificado a partir de um controlo Windows.
void DoSuperclassPaint(
CDC* pDC,
const CRect& rcBounds);
Parâmetros
pDC
Um apontador para o contexto do dispositivo do contentor de controlo.
rcBounds
A área onde o controlo deve ser desenhado.
Observações
Chame esta função para tratar corretamente da pintura de um controlo OLE não ativo. Esta função só deve ser usada se o controlo OLE subclassificar um controlo Windows e deve ser chamada na OnDraw função do seu controlo.
Para mais informações sobre esta função e a subclasse de um controlo Windows, consulte o artigo Controlos ActiveX: Subclassing a Windows Control.
COleControl::D rawConteúdo
É chamado pela estrutura quando a aparência do controlo precisa de ser atualizada.
void DrawContent(
CDC* pDC,
CRect& rc);
Parâmetros
pDC
Apontar para o contexto do dispositivo.
RC
Área retangular para ser desenhada.
Observações
Esta função chama diretamente a função sobrescrita OnDraw .
COleControl::D rawMetafile
Chamado pelo framework quando o contexto do dispositivo de metaficheiro está a ser utilizado.
void DrawMetafile(
CDC* pDC,
CRect& rc);
Parâmetros
pDC
Apontar para o contexto do dispositivo de metaficheiro.
RC
Área retangular para ser desenhada.
COleControl::EnableSimpleFrame
Permite a característica simples do quadro para um controlo OLE.
void EnableSimpleFrame();
Observações
Esta característica permite que um controlo suporte o confinamento visual de outros controlos, mas não o verdadeiro confinamento OLE. Um exemplo seria uma caixa de grupo com vários controlos dentro. Estes controlos não estão contidos em OLE, mas estão na mesma caixa de grupo.
COleControl::ExchangeExtent
Serializa ou inicializa o estado da extensão do controlo (as suas dimensões em unidades HIMÉTRICAS).
BOOL ExchangeExtent(CPropExchange* pPX);
Parâmetros
pPX
Um ponteiro para um objeto CPropExchange . A estrutura fornece este objeto para estabelecer o contexto da troca de bens, incluindo a sua direção.
Valor de retorno
Não nula se a função tivesse sucesso; 0 caso contrário.
Observações
Esta função é normalmente chamada pela implementação padrão de COleControl::DoPropExchange.
COleControl::ExchangeStockProps
Serializa ou inicializa o estado das propriedades de stock do controlo.
void ExchangeStockProps(CPropExchange* pPX);
Parâmetros
pPX
Um ponteiro para um objeto CPropExchange . A estrutura fornece este objeto para estabelecer o contexto da troca de bens, incluindo a sua direção.
Observações
Esta função é normalmente chamada pela implementação padrão de COleControl::DoPropExchange.
COleControl::ExchangeVersion
Serializa ou inicializa o estado da informação de versão de um controlo.
BOOL ExchangeVersion(
CPropExchange* pPX,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
Parâmetros
pPX
Um ponteiro para um CPropExchange objeto. A estrutura fornece este objeto para estabelecer o contexto da troca de bens, incluindo a sua direção.
dwVersionDefault
O número de versão atual do controlo.
bConvert
Indica se os dados persistentes devem ser convertidos para o formato mais recente quando guardados, ou mantidos no mesmo formato que foi carregado.
Valor de retorno
A função não nula teve sucesso; 0 caso contrário.
Observações
Normalmente, esta será a primeira função chamada pela sobreposição de um controlo de COleControl::DoPropExchange. Ao carregar, esta função lê o número de versão dos dados persistentes e define o atributo de versão do objeto CPropExchange em conformidade. Ao gravar, esta função escreve o número de versão dos dados persistentes.
Para mais informações sobre persistência e versionamento, consulte o artigo Controlos ActiveX: Serialização.
COleControl::FireClick
Chamado pelo framework quando o rato é clicado sobre um controlo ativo.
void FireClick();
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que ocorra o disparo automático de um evento de Clique, o mapa de Eventos do controlo deve ter um evento de Clique padrão definido.
COleControl::FireDblClick
Chamada pela estrutura quando o rato é dupla clique sobre um controlo ativo.
void FireDblClick();
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que o disparo automático de um evento DblClick ocorra, o mapa de eventos do controlo deve ter um evento DblClick padrão definido.
COleControl::FireError
Dispara o evento de erro de origem.
void FireError(
SCODE scode,
LPCTSTR lpszDescription,
UINT nHelpID = 0);
Parâmetros
Scode
O valor do código de estado a reportar. Para uma lista completa de possíveis códigos, consulte o artigo Controlos ActiveX: Tópicos Avançados.
lpszDescription
A descrição do erro reportado.
nHelpID
O ID de Ajuda do erro que está a ser reportado.
Observações
Este evento fornece uma forma de sinalizar, nos locais apropriados do seu código, que ocorreu um erro dentro do seu controlo. Ao contrário de outros eventos de stock, como Click ou MouseMove, o Erro nunca é ativado pelo framework.
Para reportar um erro que ocorra durante uma função de obtenção de propriedades, função de conjunto de propriedades ou método de automação, ligue para o COleControl::ThrowError.
A implementação do evento de Erro de Stock de um controlo OLE utiliza um valor SCODE. Se o seu controlo usar este evento, e for destinado a ser usado no Visual Basic 4.0, receberá erros porque o valor SCODE não é suportado no Visual Basic.
Para corrigir isto, altere manualmente o parâmetro SCODE no . ODL para um longarquivo . Além disso, qualquer evento, método ou propriedade personalizado que utilize um parâmetro SCODE também causa o mesmo problema.
COleControl::FireEvent
Dispara um evento definido pelo utilizador a partir do seu controlo com qualquer número de argumentos opcionais.
void AFX_CDECL FireEvent(
DISPID dispid,
BYTE* pbParams,
...);
Parâmetros
dispid
O ID do despacho do evento a ser disparado.
pbParams
Um descritor para os tipos de parâmetros do evento.
Observações
Normalmente, esta função não deve ser chamada diretamente. Em vez disso, vais chamar as funções de disparo de eventos na secção do mapa de eventos da declaração de classe do teu controlo.
O argumento pbParams é uma lista separada em espaços de VTS_. Um ou mais destes valores, separados por espaços (não vírgulas), especifica a lista de parâmetros da função. Os valores possíveis são os seguintes:
| Symbol | Tipo de parâmetro |
|---|---|
| VTS_COLOR | OLE_COLOR |
| VTS_FONT | IFontDisp* |
| VTS_HANDLE | HWND |
| VTS_PICTURE | IPictureDisp* |
| VTS_OPTEXCLUSIVE | OLE_OPTEXCLUSIVE* |
| VTS_TRISTATE | OLE_TRISTATE |
| VTS_XPOS_HIMETRIC | OLE_XPOS_HIMETRIC |
| VTS_YPOS_HIMETRIC | OLE_YPOS_HIMETRIC |
| VTS_XPOS_PIXELS | OLE_XPOS_PIXELS |
| VTS_YPOS_PIXELS | OLE_YPOS_PIXELS |
| VTS_XSIZE_PIXELS | OLE_XSIZE_PIXELS |
| VTS_YSIZE_PIXELS | OLE_XSIZE_PIXELS |
| VTS_XSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
| VTS_YSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
Observação
Foram definidas constantes variantes adicionais para todos os tipos de variantes, com exceção de VTS_FONT e VTS_PICTURE, que fornecem um ponteiro para a constante de dados variante. Estas constantes são nomeadas usando a convenção VTS_P<CONSTANT-NAME> . Por exemplo, VTS_PCOLOR é um apontador para uma constante VTS_COLOR.
COleControl::FireKeyDown
É chamado pelo framework quando uma tecla é pressionada enquanto o controlo está ativo na interface.
void FireKeyDown(
USHORT* pnChar,
short nShiftState);
Parâmetros
pnChar
Apontar para o valor do código da tecla virtual da tecla pressionada. Para uma lista de códigos de chave virtuais padrão, veja Winuser.h
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que ocorra o disparo automático de um evento KeyDown, o mapa de eventos do controlo deve ter um evento KeyDown padrão definido.
COleControl::FireKeyPress
É chamada pelo framework quando uma tecla é pressionada e libertada, enquanto o controlo personalizado está UI Active dentro do contentor.
void FireKeyPress(USHORT* pnChar);
Parâmetros
pnChar
Um apontador para o valor do carácter da tecla pressionada.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
O destinatário do evento pode modificar o pnChar, por exemplo, converter todos os caracteres minúsculos para maiúsculas. Se quiseres examinar a personagem modificada, anula OnKeyPressEvent.
Para que ocorra o disparo automático de um evento KeyPress, o mapa de eventos do controlo deve ter definido um evento KeyPress original.
COleControl::FireKeyUp
É chamada pelo framework quando uma chave é libertada, enquanto o controlo personalizado está UI Active dentro do contentor.
void FireKeyUp(
USHORT* pnChar,
short nShiftState);
Parâmetros
pnChar
Apontar para o valor do código da chave virtual da chave libertada. Para uma lista de códigos de chave virtuais padrão, veja Winuser.h
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que o disparo automático de um evento KeyUp ocorra, o mapa de eventos do controlo deve ter um evento KeyUp original definido.
COleControl::FireMouseDown
É chamado pela framework quando um botão do rato é pressionado sobre um controlo personalizado ativo.
void FireMouseDown(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
Parâmetros
nButton
O valor numérico do botão do rato pressionado. Pode conter um dos seguintes valores:
LEFT_BUTTON O botão esquerdo do rato foi pressionado.
MIDDLE_BUTTON O botão do meio do rato foi pressionado.
RIGHT_BUTTON O botão direito do rato foi pressionado.
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
x
A coordenada x do cursor quando um botão do rato é pressionado. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
y
A coordenada y do cursor quando um botão do rato era pressionado. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que o disparo automático de um evento MouseDown ocorra, o mapa de eventos do controlo deve ter um evento padrão MouseDown definido.
COleControl::FireMouseMove
Chamado pelo framework quando o cursor é movido sobre um controlo personalizado ativo.
void FireMouseMove(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
Parâmetros
nButton
O valor numérico dos botões do rato pressionados. Contém uma combinação dos seguintes valores:
LEFT_BUTTON O botão esquerdo do rato era pressionado durante a ação.
MIDDLE_BUTTON O botão do meio do rato foi pressionado durante a ação.
RIGHT_BUTTON O botão direito do rato era pressionado durante a ação.
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
x
A coordenada x do cursor. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
y
A coordenada y do cursor. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que ocorra o disparo automático de um evento MouseMove, o mapa de eventos do controlo deve ter um evento padrão MouseMove definido.
COleControl::FireMouseUp
É chamado pelo framework quando um botão do rato é libertado sobre um controlo personalizado ativo.
void FireMouseUp(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
Parâmetros
nButton
O valor numérico do botão do rato foi libertado. Pode ter um dos seguintes valores:
LEFT_BUTTON O botão esquerdo do rato foi libertado.
MIDDLE_BUTTON O botão do meio do rato foi libertado.
RIGHT_BUTTON O botão direito do rato foi libertado.
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
x
A coordenada x do cursor quando um botão do rato era libertado. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
y
A coordenada y de um cursor quando um botão do rato era libertado. A coordenada é relativa ao canto superior esquerdo da janela de controlo.
Observações
Se este evento for definido como um evento personalizado, você determina quando o evento é disparado.
Para que ocorra o disparo automático de um evento MouseUp, o mapa de eventos do controlo deve ter um evento padrão do MouseUp definido.
COleControl::FireReadyStateChange
Dispara um evento com o valor atual do estado de controlo pronto.
void FireReadyStateChange();
Observações
O estado pronto pode ser um dos seguintes valores:
| Nome | Description |
|---|---|
| READYSTATE_UNINITIALIZED | Estado de inicialização por defeito |
| READYSTATE_LOADING | O controlo está atualmente a carregar as suas propriedades |
| READYSTATE_LOADED | O controlo foi inicializado |
| READYSTATE_INTERACTIVE | O controlo tem dados suficientes para ser interativo, mas nem todos os dados assíncronos estão ainda carregados |
| READYSTATE_COMPLETE | O controlo tem todos os seus dados |
Use o GetReadyState para determinar a prontidão atual do controlo.
InternalSetReadyState altera o estado pronto para o valor fornecido, depois chama FireReadyStateChange.
COleControl::GetActivationPolicy
Altera o comportamento de ativação padrão de um controlo que suporta a IPointerInactive interface.
virtual DWORD GetActivationPolicy();
Valor de retorno
Uma combinação de flags da enumeração POINTERINACTIVE. Possíveis bandeiras são:
| Nome | Description |
|---|---|
| POINTERINACTIVE_ACTIVATEONENTRY | O objeto deve ser ativado no local quando o rato entra nele durante uma operação de movimento do rato. |
| POINTERINACTIVE_DEACTIVATEONLEAVE | O objeto deve ser desativado quando o rato o abandona durante uma operação de movimento do rato. |
| POINTERINACTIVE_ACTIVATEONDRAG | O objeto deve ser ativado no local quando o rato é arrastado sobre ele durante uma operação de arrastar e largar. |
Observações
Quando a IPointerInactive interface está ativada, o contentor delega WM_SETCURSOR e WM_MOUSEMOVE mensagens para ele.
COleControlA implementação desta interface enviará estas mensagens através do mapa de mensagens do seu controlo, após ajustar as coordenadas do rato adequadamente.
Sempre que o contentor recebe uma mensagem WM_SETCURSOR ou WM_MOUSEMOVE com o ponteiro do rato sobre um objeto inativo que suporta IPointerInactive, deve chamar GetActivationPolicy a interface e devolver flags da enumeração POINTERINACTIVE.
Pode processar estas mensagens tal como as mensagens normais de janela, adicionando as entradas correspondentes ao mapa da mensagem. Nos seus handlers, evite usar a m_hWnd variável membro (ou quaisquer funções membro que a utilizem) sem antes verificar se o seu valor não é NULL.
Qualquer objeto destinado a fazer mais do que definir o cursor do rato e/ou disparar um evento de movimento do rato, como dar feedback visual especial, deve devolver a bandeira de POINTERINACTIVE_ACTIVATEONENTRY e desenhar o feedback apenas quando ativo. Se o objeto devolver esta bandeira, o contentor deve ativá-la imediatamente no local e depois encaminhá-la para a mesma mensagem que desencadeou a chamada para GetActivationPolicy.
Se as bandeiras de POINTERINACTIVE_ACTIVATEONENTRY e POINTERINACTIVE_DEACTIVATEONLEAVE forem devoltas, o objeto só será ativado quando o rato estiver sobre ele. Se apenas a bandeira de POINTERINACTIVE_ACTIVATEONENTRY for devolvida, o objeto só será ativado uma vez quando o rato entrar no objeto pela primeira vez.
Também pode querer que um controlo inativo seja o alvo de uma operação OLE de arrastar e largar. Isto requer ativar o controlo no momento em que o utilizador arrasta um objeto sobre ele, para que a janela do controlo possa ser registada como alvo de largada. Para causar ativação durante um arrasto, devolva a bandeira de POINTERINACTIVE_ACTIVATEONDRAG:
DWORD CMyAxCtrl::GetActivationPolicy()
{
return POINTERINACTIVE_ACTIVATEONDRAG;
}
A informação comunicada por GetActivationPolicy não deve ser armazenada em cache por um contentor. Em vez disso, este método deve ser chamado sempre que o rato entra num objeto inativo.
Se um objeto inativo não pedir para ser ativado no local quando o rato entra nele, o seu contentor deve enviar mensagens de WM_SETCURSOR subsequentes para esse objeto, chamando o OnInactiveSetCursor , desde que o ponteiro do rato permaneça sobre o objeto.
Ativar a IPointerInactive interface normalmente significa que queres que o controlo seja capaz de processar mensagens do rato em todos os momentos. Para obter este comportamento num contentor que não suporta a IPointerInactive interface, terá de ter o controlo sempre ativado quando visível, o que significa que o controlo deve ter a flag OLEMISC_ACTIVATEWHENVISIBLE entre as suas várias flags. No entanto, para evitar que este flag tenha efeito num contentor que suporte IPointerInactive, pode também especificar o flag OLEMISC_IGNOREACTIVATEWHENVISIBLE:
static const DWORD BASED_CODE _dwMyOleMisc =
OLEMISC_ACTIVATEWHENVISIBLE |
OLEMISC_IGNOREACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
COleControl::GetAmbientProperty
Obtém o valor de uma propriedade ambiente do contentor.
BOOL GetAmbientProperty(
DISPID dispid,
VARTYPE vtProp,
void* pvProp);
Parâmetros
dwDispid
O ID de despacho da propriedade ambiente desejada.
vtProp
Uma etiqueta de tipo variante que especifica o tipo do valor a ser devolvido no pvProp.
pvProp
Um apontador para o endereço da variável que receberá o valor da propriedade ou valor de retorno. O tipo real deste ponteiro deve corresponder ao tipo especificado pelo vtProp.
| vtProp | Tipo de PvProp |
|---|---|
| VT_BOOL | BOOL* |
| VT_BSTR | CString* |
| VT_I2 | short* |
| VT_I4 | long* |
| VT_R4 | float* |
| VT_R8 | double* |
| VT_CY | CY* |
| VT_COLOR | OLE_COLOR* |
| VT_DISPATCH | LPDISPATCH* |
| VT_FONT | LPFONTDISP* |
Valor de retorno
Não nula se a propriedade ambiente for suportada; caso contrário, 0.
Observações
Se usares GetAmbientProperty para recuperar as propriedades ambient DisplayName e ScaleUnits, define vtProp para VT_BSTR e pvProp para CString*. Se estiveres a recuperar a propriedade ambient Font, define vtProp para VT_FONT e pvProp para LPFONTDISP*.
Note que já foram fornecidas funções para propriedades ambientes comuns, como AmbientBackColor e AmbientFont.
COleControl::GetAppearance
Implementa a função Get da propriedade Aparência de stock do seu controlo.
short GetAppearance ();
Valor de retorno
O valor de retorno especifica a definição de aparência atual como um short valor (VT_I2), se for bem-sucedido. Este valor é zero se a aparência do controlo for plana e 1 se a aparência do controlo for 3D.
COleControl::GetBackColor
Implementa a função Get da propriedade BackColor original do seu controlo.
OLE_COLOR GetBackColor();
Valor de retorno
O valor de retorno especifica a cor de fundo atual como um valor OLE_COLOR, se for bem-sucedido. Este valor pode ser traduzido para um valor COLORREF com uma chamada para TranslateColor.
COleControl::GetBorderStyle
Implementa a função Get da propriedade BorderStyle original do seu controlo.
short GetBorderStyle();
Valor de retorno
1 se o controlo tiver uma borda normal; 0 se o controlo não tiver fronteira.
COleControl::GetCapture
Determina se o COleControl objeto tem a captura do rato.
CWnd* GetCapture();
Valor de retorno
Se o controlo estiver ativado e sem janelas, retorna this se o controlo tiver atualmente a captura do rato (conforme determinado pelo contentor do controlo), ou NULL se não tiver a captura.
Caso contrário, devolve o CWnd objeto que tem a captura do rato (igual a CWnd::GetCapture).
Observações
Um controlo sem janelas ativado recebe a captura do rato quando o SetCapture é chamado.
COleControl::GetClassID
Chamado pelo framework para recuperar o ID da classe OLE do controlo.
virtual HRESULT GetClassID(LPCLSID pclsid) = 0;
Parâmetros
PCLSID
Apontar para a localização do ID da classe.
Valor de retorno
Não zero se a chamada não fosse bem-sucedida; caso contrário, 0.
Observações
Normalmente implementado pelo IMPLEMENT_OLECREATE_EX.
COleControl::GetClientOffset
Recupera a diferença entre o canto superior esquerdo da área retangular do controlo e o canto superior esquerdo da sua área do cliente.
virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;
Parâmetros
pdxOffset
Apontar para o deslocamento horizontal da área do cliente do controlo OLE.
pdyOffset
Apontar para o deslocamento vertical da área cliente do controlo OLE.
Observações
O controlo OLE tem uma área retangular dentro do seu contentor. A área de cliente do controlo é a área de controlo, excluindo as bordas e as barras de deslocamento. O deslocamento recuperado por GetClientOffset é a diferença entre o canto superior esquerdo da área retangular do controlo e o canto superior esquerdo da sua área cliente. Se o seu controlo tiver elementos não do cliente para além das bordas e barras de scroll padrão, sobrescrita esta função membro para especificar o deslocamento.
COleControl::GetClientRect
Recupera o tamanho da área do cliente do controlo.
virtual void GetClientRect(LPRECT lpRect) const;
Parâmetros
lpRect
Apontador para uma RECT estrutura que contém as dimensões da área cliente do controlo sem janelas; ou seja, o tamanho do controlo menos as bordas das janelas, frames, barras de scroll, e assim por diante. O parâmetro lpRect indica o tamanho do retângulo cliente do controlo, não a sua posição.
COleControl::GetClientSite
Consulta um objeto para o ponteiro do seu local cliente atual dentro do seu contentor.
LPOLECLIENTSITE GetClientSite();
Valor de retorno
Um apontador para o local cliente atual do controlo no seu contentor.
Observações
O ponteiro devolvido aponta para uma instância de IOleClientSite. A IOleClientSite interface, implementada por containers, é a visão do objeto sobre o seu contexto: onde está ancorado no documento, onde obtém o seu armazenamento, interface de utilizador e outros recursos.
COleControl::GetControlFlags
Recupera as definições da flag de controlo.
virtual DWORD GetControlFlags();
Valor de retorno
Uma combinação OR das flags na enumeração ControlFlags:
enum ControlFlags {
fastBeginPaint = 0x0001,
clipPaintDC = 0x0002,
pointerInactive = 0x0004,
noFlickerActivate = 0x0008,
windowlessActivate = 0x0010,
canOptimizeDraw = 0x0020,
};
Observações
Por defeito, GetControlFlags devolve fastBeginPaint | clipPaintDC.
| Nome | Description |
|---|---|
fastBeginPaint |
Se definido, usa uma função begin-paint adaptada para controlos OLE em vez da API BeginPaint (definida por defeito). |
clipPaintDC |
Se não for definido, desativa a chamada feita IntersectClipRect por COleControl e ganha uma pequena vantagem de velocidade. Se estiveres a usar ativação sem janelas, a flag não tem efeito. |
pointerInactive |
Se ativado, proporciona interação com o rato enquanto o seu controlo está inativo, ativando COleControla implementação da IPointerInactive interface por ', que está desativada por defeito. |
noFlickerActivate |
Se ativado, elimina operações de desenho extra e o cintilar visual correspondente. Usa quando o teu controlo se desenhar de forma idêntica nos estados inativo e ativo. Se estiveres a usar ativação sem janelas, a flag não tem efeito. |
windowlessActivate |
Se definido, indica que o teu controlo usa ativação sem janelas. |
canOptimizeDraw |
Se definido, indica que o controlo irá realizar desenho otimizado, se o contentor o suportar. |
Para mais informações sobre GetControlFlags e outras otimizações dos controlos OLE, consulte Controlos ActiveX: Otimização.
COleControl::GetControlSize
Recupera o tamanho da janela de controlo OLE.
void GetControlSize(
int* pcx,
int* pcy);
Parâmetros
PCX
Especifica a largura do controlo em pixels.
PCY
Especifica a altura do controlo em pixels.
Observações
Note que todas as coordenadas das janelas de controlo são relativas ao canto superior esquerdo do controlo.
COleControl::GetDC
Permite que um objeto sem janelas obtenha um contexto de dispositivo de ecrã (ou compatível) a partir do seu contentor.
CDC* GetDC(
LPCRECT lprcRect = NULL,
DWORD dwFlags = OLEDC_PAINTBKGND);
Parâmetros
lprcRect
Um ponteiro para o retângulo que o controlo sem janelas quer redesenhar, em coordenadas do cliente do controlo. NULL significa a extensão total do objeto.
dwBandeiras
Desenhar atributos do contexto do dispositivo. As opções são:
OLEDC_NODRAW Indica que o objeto não usará o contexto do dispositivo para realizar qualquer desenho, mas apenas para obter informações sobre o dispositivo de visualização. O contentor deve simplesmente passar o DC da janela sem processamento adicional.
OLEDC_PAINTBKGND Pede que o contentor pinte o fundo antes de devolver o DC. Um objeto deve usar este flag se estiver a pedir um DC para redesenhar uma área com fundo transparente.
OLEDC_OFFSCREEN Informa o contentor que o objeto deseja ser renderizado num bitmap fora do ecrã que deve depois ser copiado para o ecrã. Um objeto deve usar este flag quando a operação de desenho que está prestes a realizar gera muito cintilação. O recipiente é livre de aceitar este pedido ou não. No entanto, se esta bandeira não estiver definida, o contentor deve devolver um DC no ecrã. Isto permite que os objetos realizem operações diretas de ecrã, como mostrar uma seleção (através de uma operação XOR ).
Valor de retorno
Apontar para o contexto do dispositivo de visualização para a área do cliente do contentor CWnd se for bem-sucedido; caso contrário, o valor de retorno é NULL. O contexto do dispositivo de visualização pode ser usado em funções GDI subsequentes para desenhar na área cliente da janela do contentor.
Observações
A função membro ReleaseDC deve ser chamada para libertar o contexto após a pintura. Ao chamar GetDC, os objetos passam pelo retângulo onde desejam desenhar nas suas próprias coordenadas do cliente.
GetDC traduz-se estas para coordenadas da área cliente do contentor. O objeto não deve pedir um retângulo de desenho desejado maior do que o seu próprio retângulo da área do cliente, cujo tamanho pode ser recuperado com o GetClientRect. Isto impede que objetos desenhem inadvertidamente onde não deveriam.
COleControl::GetEnabled
Implementa a função Get da propriedade Habilitada em stock do seu controlo.
BOOL GetEnabled();
Valor de retorno
Diferente de zero se o controlo estiver ativado; caso contrário, 0.
COleControl::GetExtendedControl
Obtém um ponteiro para um objeto mantido pelo contentor que representa o controlo com um conjunto alargado de propriedades.
LPDISPATCH GetExtendedControl();
Valor de retorno
Um apontador para o objeto de controlo estendido do contentor. Se não houver objeto disponível, o valor é NULL.
Este objeto pode ser manipulado através da sua IDispatch interface. Também pode usar QueryInterface para obter outras interfaces disponíveis fornecidas pelo objeto. No entanto, o objeto não é obrigado a suportar um conjunto específico de interfaces. Note que depender das características específicas do objeto de controlo estendido de um contentor limita a portabilidade do seu controlo para outros contentores arbitrários.
Observações
A função que chama esta função é responsável por libertar o ponteiro quando termina com o objeto. Note que o contentor não é obrigado a suportar este objeto.
COleControl::GetFocus
Determina se o COleControl objeto tem o foco.
CWnd* GetFocus();
Valor de retorno
Se o controlo estiver ativado e sem janelas, retorna this se o controlo tiver atualmente o foco do teclado (conforme determinado pelo contentor do controlo), ou NULL se não tiver o foco.
Caso contrário, devolve o CWnd objeto que tem o foco (igual a CWnd::GetFocus).
Observações
Um controlo sem janelas ativado recebe o foco quando o SetFocus é chamado.
COleControl::GetFont
Implementa a função Get da propriedade Fonte padrão.
LPFONTDISP GetFont();
Valor de retorno
Um apontador para a interface de despacho de fontes da propriedade Font padrão do controlo.
Observações
Note que o chamador deve libertar o objeto quando terminar. Dentro da implementação do controlo, use InternalGetFont para aceder ao objeto Font stock do controlo. Para mais informações sobre o uso de fontes sob o seu controlo, consulte o artigo Controlo ActiveX: Utilização de Fontes num Controlo ActiveX.
COleControl::GetFontTextMetrics
Mede as métricas de texto para qualquer CFontHolder objeto pertencente ao controlo.
void GetFontTextMetrics(
LPTEXTMETRIC lptm,
CFontHolder& fontHolder);
Parâmetros
LPTM
Apontar para uma estrutura TEXTMETRIC .
fontHolder
Referência a um objeto CFontHolder .
Observações
Tal fonte pode ser selecionada com a função COleControl::SelectFontObject .
GetFontTextMetrics Inicializará a TEXTMETRIC estrutura apontada pelo LPTM com métricas válidas sobre fontHoldera fonte se for bem-sucedido, ou preenche a estrutura com zeros se não for bem-sucedido. Deve usar esta função em vez do GetTextMetrics ao pintar o seu controlo, porque os controlos, tal como qualquer objeto OLE incorporado, podem ser necessários para se renderizar num metaficheiro.
A TEXTMETRIC estrutura da fonte padrão é atualizada quando a função SelectFontObject é chamada. Deve ligar GetFontTextMetrics apenas depois de selecionar a propriedade Fonte original para garantir que a informação que fornece é válida.
COleControl::GetForeColor
Implementa a função Get da propriedade stock ForeColor.
OLE_COLOR GetForeColor();
Valor de retorno
O valor de retorno especifica a cor atual do primeiro plano como um valor OLE_COLOR, se for bem-sucedido. Este valor pode ser traduzido para um valor COLORREF com uma chamada para TranslateColor.
COleControl::GetHwnd
Implementa a função Get da propriedade stock hWnd.
OLE_HANDLE GetHwnd();
Valor de retorno
A maçaneta da janela do controlo OLE, se existir; caso contrário, NULL.
COleControl::GetMessageString
Chamado pelo framework para obter uma pequena cadeia que descreve o propósito do item do menu identificado por nID.
virtual void GetMessageString(
UINT nID,
CString& rMessage) const;
Parâmetros
nID
Um ID de item do menu.
rMessage
Uma referência a um objeto CString através do qual uma cadeia será devolvida.
Observações
Isto pode ser usado para obter uma mensagem para mostrar numa barra de estado enquanto o item do menu está destacado. A implementação padrão tenta carregar um recurso de cadeia identificado pelo nID.
COleControl::GetNotSupported
Impede o acesso do utilizador ao valor da propriedade de um controlo.
void GetNotSupported();
Observações
Chame esta função em vez da função Get de qualquer propriedade onde a recuperação da propriedade pelo utilizador do controlo não seja suportada. Um exemplo seria uma propriedade que é apenas escrita.
COleControl::GetReadyState
Devolve o estado de prontidão do controlo.
long GetReadyState();
Valor de retorno
O estado de prontidão do controlo, um dos seguintes valores:
| Nome | Description |
|---|---|
| READYSTATE_UNINITIALIZED | Estado de inicialização por defeito |
| READYSTATE_LOADING | O controlo está atualmente a carregar as suas propriedades |
| READYSTATE_LOADED | O controlo foi inicializado |
| READYSTATE_INTERACTIVE | O controlo tem dados suficientes para ser interativo, mas nem todos os dados assíncronos estão ainda carregados |
| READYSTATE_COMPLETE | O controlo tem todos os seus dados |
Observações
A maioria dos controlos simples nunca precisa de diferenciar entre LOADED e INTERACTIVE. No entanto, os controlos que suportam propriedades do caminho dos dados podem não estar prontos para ser interativos até que pelo menos alguns dados sejam recebidos de forma assíncrona. Um controlo deve tentar tornar-se interativo o mais rapidamente possível.
COleControl::GetRectInContainer
Obtém as coordenadas do retângulo do controlo em relação ao contentor, expressas em unidades de dispositivo.
BOOL GetRectInContainer(LPRECT lpRect);
Parâmetros
lpRect
Um ponteiro para a estrutura retangular para onde serão copiadas as coordenadas do controlo.
Valor de retorno
Diferente de zero se o controlo estiver ativo no local; caso contrário, 0.
Observações
O retângulo só é válido se o controlo estiver ativo no local.
COleControl::GetStockTextMetrics
Mede as métricas de texto para a propriedade Font stock do controlo, que pode ser selecionada com a função SelectStockFont .
void GetStockTextMetrics(LPTEXTMETRIC lptm);
Parâmetros
LPTM
Um apontador para uma estrutura TEXTMETRIC .
Observações
A GetStockTextMetrics função inicializará a TEXTMETRIC estrutura apontada por lptm com informação válida das métricas se for bem-sucedida, ou preencherá a estrutura com zeros se não for bem-sucedida. Use esta função em vez do GetTextMetrics ao pintar o seu controlo, porque os controlos, tal como qualquer objeto OLE incorporado, podem ser necessários para se renderizar num metaficheiro.
A TEXTMETRIC estrutura da fonte padrão é atualizada quando a SelectStockFont função é chamada. Deve chamar esta função apenas depois de selecionar a fonte original para garantir que a informação que fornece é válida.
COleControl::GetText
Implementa a função Get da propriedade stock Text ou Caption.
BSTR GetText();
Valor de retorno
O valor atual da cadeia de texto de controlo ou uma cadeia de comprimento zero se não houver sequência presente.
Observação
Para mais informações sobre o tipo de dados BSTR, consulte Tipos de Dados na secção Macros e Globais.
Observações
Note que o chamador desta função deve invocar SysFreeString a cadeia devolvida para libertar o recurso. Dentro da implementação do controlo, use InternalGetText para aceder à propriedade Texto ou Legenda padrão do controlo.
COleControl::GetSenseWindowDropTarget
Override GetWindowlessDropTarget quando quiseres que um controlo sem janelas seja o alvo de uma operação OLE de arrastar e largar.
virtual IDropTarget* GetWindowlessDropTarget();
Valor de retorno
Apontador para a interface do IDropTarget objeto. Como não tem janela, um objeto sem janelas não pode registar uma IDropTarget interface. No entanto, para participar no arrastar e largar, um objeto sem janelas ainda pode implementar a interface e devolvê-la em GetWindowlessDropTarget.
Observações
Normalmente, isto exigiria que a janela do controlo fosse registada como alvo de queda. Mas como o controlo não tem janela própria, o contentor usará a sua própria janela como alvo de queda. O controlo precisa simplesmente de fornecer uma implementação da IDropTarget interface para a qual o contentor possa delegar chamadas no momento apropriado. Por exemplo:
IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
m_xDropTarget.AddRef();
return &m_xDropTarget;
}
COleControl::InicializeIIDs
Informa a classe base dos IIDs que o controlo irá utilizar.
void InitializeIIDs(
const IID* piidPrimary,
const IID* piidEvents);
Parâmetros
piidPrimary
Apontador para o ID da interface principal de despacho do controlo.
piidEventos
Apontar para o ID da interface de eventos do controlo.
Observações
Chame esta função no construtor do controlo para informar a classe base dos IDs de interface que o seu controlo irá usar.
COleControl::InternalGetFont
Acede à propriedade Font stock do seu controlo
CFontHolder& InternalGetFont();
Valor de retorno
Uma referência a um objeto CFontHolder que contém o objeto Font padrão.
COleControl::InternalGetText
Acede à propriedade de Texto ou Legenda stock do seu controlo.
const CString& InternalGetText();
Valor de retorno
Uma referência à cadeia de texto de controlo.
COleControl::InternoSetReadyState
Define o estado de prontidão do controlo.
void InternalSetReadyState(long lNewReadyState);
Parâmetros
Novo Estado Pronto
O estado de prontidão a definir para o controlo, um dos seguintes valores:
| Nome | Description |
|---|---|
| READYSTATE_UNINITIALIZED | Estado de inicialização por defeito |
| READYSTATE_LOADING | O controlo está atualmente a carregar as suas propriedades |
| READYSTATE_LOADED | O controlo foi inicializado |
| READYSTATE_INTERACTIVE | O controlo tem dados suficientes para ser interativo, mas nem todos os dados assíncronos estão ainda carregados |
| READYSTATE_COMPLETE | O controlo tem todos os seus dados |
Observações
A maioria dos controlos simples nunca precisa de diferenciar entre LOADED e INTERACTIVE. No entanto, os controlos que suportam propriedades do caminho dos dados podem não estar prontos para ser interativos até que pelo menos alguns dados sejam recebidos de forma assíncrona. Um controlo deve tentar tornar-se interativo o mais rapidamente possível.
COleControl::InvalidateControl
Obriga o controlo a redesenhar-se.
void InvalidateControl(
LPCRECT lpRect = NULL,
BOOL bErase = TRUE);
Parâmetros
lpRect
Um apontador para a região do controlo a invalidar.
bErase
Especifica se o fundo dentro da região de atualização deve ser apagado quando a região de atualização for processada.
Observações
Se o lpRect tiver um valor NULL, todo o controlo será redesenhado. Se lpRect não for NULL, isto indica a parte do retângulo do controlo que deve ser invalidada. Nos casos em que o controlo não tem janela, ou não está atualmente ativo, o retângulo é ignorado e é feita uma chamada para a função membro IAdviseSink::OnViewChange do site cliente. Use esta função em vez de CWnd::InvalidateRect ou InvalidateRect.
COleControl::InvalidateRgn
Invalida a área do cliente da janela do contentor dentro da região dada.
void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);
Parâmetros
pRgn
Um apontador para um objeto CRgn que identifica a região de exibição do objeto OLE a invalidar, em coordenadas cliente da janela que a contém. Se este parâmetro for NULO, a extensão é o objeto inteiro.
bErase
Especifica se o fundo dentro da região invalidada deve ser apagado. Se for VERDADE, o fundo é apagado. Se FALSE, o fundo mantém-se inalterado.
Observações
Isto pode ser usado para redesenhar controlos sem janelas dentro do contentor. A região invalidada, juntamente com todas as outras áreas da região de atualização, é marcada para ser pintada quando a próxima mensagem de WM_PAINT é enviada.
Se o bErase for VERDADEIRO para qualquer parte da região de atualização, o fundo em toda a região, não apenas na parte dada, é apagado.
COleControl::IsConvertingVBX
Permite uma carga especializada de um controlo OLE.
BOOL IsConvertingVBX();
Valor de retorno
Não nulo se o controlo estiver a ser convertido; caso contrário, 0.
Observações
Ao converter um formulário que utiliza controlos VBX para um que utiliza controlos OLE, pode ser necessário um código especial de carregamento para os controlos OLE. Por exemplo, se estiver a carregar uma instância do seu controlo OLE, pode ter uma chamada para PX_Font no seu DoPropExchange:
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
No entanto, os controlos VBX não tinham um objeto Font; Cada propriedade da fonte era guardada individualmente. Neste caso, usaria IsConvertingVBX para distinguir entre estes dois casos:
if (!IsConvertingVBX())
{
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
PX_String(pPX, _T("FontName"), tempString, DefaultName);
m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
m_pMyFont->m_pFont->put_Underline(tempBool);
}
Outro caso seria se o teu controlo VBX guardasse dados binários proprietários (no seu VBM_SAVEPROPERTY gestor de mensagens), e o controlo OLE guardasse os seus dados binários num formato diferente. Se quiser que o seu controlo OLE seja compatível com o controlo VBX, pode ler tanto os formatos antigo como o novo usando a IsConvertingVBX função, distinguindo se o controlo VBX ou OLE estava a ser carregado.
Na função do DoPropExchange seu controlo, pode verificar esta condição e, se for verdadeira, executar código de carregamento específico para esta conversão (como nos exemplos anteriores). Se o controlo não estiver a ser convertido, pode executar código de carregamento normal. Esta capacidade só se aplica a controlos convertidos a partir de equivalentes VBX.
COleControl::IsInvokeAllowed
Permite a invocação de métodos de automação.
BOOL IsInvokeAllowed(DISPID dispid);
Valor de retorno
Não nulo se o controlo tiver sido inicializado; caso contrário, 0.
Observações
A implementação do framework de IDispatch::Invoke chamadas IsInvokeAllowed para determinar se uma dada função (identificada por dispid) pode ser invocada. O comportamento padrão de um controlo OLE é permitir que métodos de automação sejam invocados apenas se o controlo tiver sido inicializado; no entanto, IsInvokeAllowed é uma função virtual e pode ser sobreposta se necessário (por exemplo, quando o controlo está a ser usado como servidor de automação).
COleControl::IsModified
Determina se o estado do controlo foi modificado.
BOOL IsModified();
Valor de retorno
Diferente de zero se o estado do controlo foi modificado desde a última vez que foi guardado; caso contrário, 0.
Observações
O estado de um controlo é modificado quando uma propriedade muda de valor.
COleControl::IsOptimizedDraw
Determina se o contentor suporta desenho otimizado para a operação de desenho atual.
BOOL IsOptimizedDraw();
Valor de retorno
TRUE se o contentor suportar desenho otimizado para a operação de desenho atual; caso contrário, FALSO.
Observações
Se o desenho otimizado for suportado, então o controlo não precisa de selecionar objetos antigos (canetas, pincéis, fontes, etc.) no contexto do dispositivo quando o desenho termina.
COleControl::IsSubclassedControl
Chamado pelo framework para determinar se o controlo subclasse um controlo do Windows.
virtual BOOL IsSubclassedControl();
Valor de retorno
Não nulo se o controlo for subclasse; caso contrário, 0.
Observações
Tem de sobrescrever esta função e devolver TRUE se o seu controlo OLE subclasse um controlo Windows.
COleControl::Load
Reinicia quaisquer dados anteriores carregados de forma assíncrona e inicia um novo carregamento da propriedade assíncrona do controlo.
void Load(LPCTSTR strNewPath, CDataPathProperty& prop);
Parâmetros
strNewPath
Um ponteiro para uma cadeia contendo o caminho que faz referência à localização absoluta da propriedade de controlo assíncrono.
Prop
Um objeto CDataPathProperty que implementa uma propriedade de controlo assíncrona.
COleControl::LockInPlaceActive
Impede que o recipiente desative o teu controlo.
BOOL LockInPlaceActive(BOOL bLock);
Parâmetros
bLock
TRUE se o estado ativo no local do controlo for bloqueado; FALSE se for para ser desbloqueado.
Valor de retorno
Diferente de zero se o bloqueio fosse bem-sucedido; caso contrário, 0.
Observações
Note que cada bloqueio do controlo deve ser emparelhado com um desbloqueio do controlo quando terminado. Deves bloquear o controlo apenas por curtos períodos, como ao disparar um evento.
COleControl::OnAmbientPropertyChange
Chamado pelo framework quando uma propriedade ambiente do contentor alterou o valor.
virtual void OnAmbientPropertyChange(DISPID dispid);
Parâmetros
dispID
O ID de despacho da propriedade ambiente que mudou, ou DISPID_UNKNOWN se várias propriedades tiverem sido alteradas.
COleControl::Na Aparência Alterada
Chamado pelo framework quando o valor da propriedade de aparência da ação mudou.
virtual void OnAppearanceChanged ();
Observações
Anule esta função se quiser ser notificado após esta alteração. A implementação padrão chama InvalidateControl.
COleControl::OnBackColorChanged
Chamado pelo framework quando o valor da propriedade BackColor do stock mudou.
virtual void OnBackColorChanged();
Observações
Anule esta função se quiser ser notificado após esta alteração. A implementação padrão chama InvalidateControl.
COleControl::OnBorderStyleChanged
É chamado pelo framework quando o valor da propriedade BorderStyle da ação mudou.
virtual void OnBorderStyleChanged();
Observações
A implementação padrão chama InvalidateControl.
Anule esta função se quiser ser notificado após esta alteração.
COleControl::OnClick
Chamada pela framework quando um botão do rato foi clicado ou o método DoClick stock foi invocado.
virtual void OnClick(USHORT iButton);
Parâmetros
iButton
Índice de um botão do rato. Pode ter um dos seguintes valores:
LEFT_BUTTON O botão esquerdo do rato foi clicado.
MIDDLE_BUTTON O botão do meio do rato foi clicado.
RIGHT_BUTTON O botão direito do rato foi clicado.
Observações
A implementação padrão chama COleControl::FireClick.
Sobrescrita esta função membro para modificar ou estender o tratamento padrão.
COleControl::OnClose
Chamado pela estrutura quando o contentor chamou a função do IOleControl::Close controlo.
virtual void OnClose(DWORD dwSaveOption);
Parâmetros
dwSaveOption
Flag que indica se o objeto deve ser guardado antes de carregar. Os valores válidos são:
OLECLOSE_SAVEIFDIRTY
OLECLOSE_NOSAVE
OLECLOSE_PROMPTSAVE
Observações
Por defeito, OnClose guarda o objeto de controlo se este tiver sido modificado e o dwSaveOption for OLECLOSE_SAVEIFDIRTY ou OLECLOSE_PROMPTSAVE.
COleControl::OnDoVerb
Chamada pela framework quando o contentor chama a IOleObject::DoVerb função membro.
virtual BOOL OnDoVerb(
LONG iVerb,
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
Parâmetros
iVerb
O índice do verbo de controlo a invocar.
lpMsg
Um ponteiro para a mensagem do Windows que fez com que o verbo fosse invocado.
hWndParent
A maçaneta para a janela principal do controlo. Se a execução do verbo cria uma janela (ou janelas), hWndParent deve ser usado como pai.
lpRect
Um ponteiro para uma estrutura RECT na qual serão copiadas as coordenadas do controlo, relativamente ao contentor.
Valor de retorno
Não zero se a chamada fosse bem-sucedida; caso contrário, 0.
Observações
A implementação padrão utiliza as entradas do mapa de mensagens ON_OLEVERB e ON_STDOLEVERB para determinar a função adequada a invocar.
Substitua esta função para alterar o tratamento padrão do verbo.
COleControl::OnDraw
Chamado pelo framework para desenhar o controlo OLE no retângulo delimitador especificado usando o contexto do dispositivo especificado.
virtual void OnDraw(
CDC* pDC,
const CRect& rcBounds,
const CRect& rcInvalid);
Parâmetros
pDC
O contexto do dispositivo em que ocorre o desenho.
rcBounds
A área retangular do controlo, incluindo a borda.
rcInvalid
A área retangular do controlo que é inválida.
Observações
OnDraw é tipicamente chamada para exibição de ecrã, passando o contexto de um dispositivo de ecrã como pDC. O parâmetro rcBounds identifica o retângulo no contexto do dispositivo de destino (em relação ao seu modo de mapeamento atual). O parâmetro rcInvalid é o retângulo real que é inválido. Em alguns casos, esta será uma área menor do que o rcBounds.
COleControl::OnDrawMetafile
Chamado pelo framework para desenhar o controlo OLE no retângulo delimitador especificado usando o contexto especificado do dispositivo de metafile.
virtual void OnDrawMetafile(
CDC* pDC,
const CRect& rcBounds);
Parâmetros
pDC
O contexto do dispositivo em que ocorre o desenho.
rcBounds
A área retangular do controlo, incluindo a borda.
Observações
A implementação padrão chama a função OnDraw .
COleControl::OnEdit
Faz com que o controlo seja ativado pela interface.
virtual BOOL OnEdit(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
Parâmetros
lpMsg
Um apontador para a mensagem do Windows que invocava o verbo.
hWndParent
Uma alavanca para a janela principal do controlo.
lpRect
Um ponteiro para o retângulo usado pelo controlo no contentor.
Valor de retorno
Diferente de zero se a chamada for bem-sucedida; caso contrário, 0.
Observações
Isto tem o mesmo efeito que invocar o verbo OLEIVERB_UIACTIVATE do controlo.
Esta função é normalmente usada como função de manipulador para uma entrada de ON_OLEVERB mapa de mensagem. Isto disponibiliza um verbo "Editar" no menu "Objeto" do controlo. Por exemplo:
ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)
COleControl::OnEnabledAlterado
Chamado pelo framework quando o valor da propriedade ativada da ação mudou.
virtual void OnEnabledChanged();
Observações
Anule esta função se quiser ser notificado após esta alteração. A implementação padrão chama InvalidateControl.
COleControl::OnEnumVerbs
Chamada pela framework quando o contentor chama a IOleObject::EnumVerbs função membro.
virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);
Parâmetros
ppenumOleVerb
Um apontador para o IEnumOLEVERB objeto que enumera os verbos do controlo.
Valor de retorno
Não nulo se existirem verbos disponíveis; caso contrário, 0.
Observações
A implementação padrão enumera as ON_OLEVERB entradas no mapa da mensagem.
Substitua esta função para alterar a forma padrão de enumerar verbos.
COleControl::OnEventAdvise
Chamado pelo framework quando um gestor de eventos está ligado ou desligado de um controlo OLE.
virtual void OnEventAdvise(BOOL bAdvise);
Parâmetros
bAdvise
TRUE indica que um gestor de eventos foi ligado ao controlo. FALSE indica que um gestor de eventos foi desligado do controlo.
COleControl::OnFontChanged
É chamado pelo framework quando o valor da propriedade Font original mudou.
virtual void OnFontChanged();
Observações
A implementação padrão chama COleControl::InvalidateControl. Se o controlo estiver a subclassificar um controlo do Windows, a implementação padrão também envia uma mensagem WM_SETFONT para a janela do controlo.
Anule esta função se quiser ser notificado após esta alteração.
Example
void CMyAxCtrl::OnFontChanged()
{
// Always set it to the container's font
if (m_MyEdit.m_hWnd != NULL)
{
IFontDisp *pFontDisp = NULL;
IFont *pFont = NULL;
HRESULT hr;
// Get the container's FontDisp interface
pFontDisp = AmbientFont();
if (pFontDisp)
{
hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
if (FAILED(hr))
{
pFontDisp->Release();
return;
}
}
HFONT hFont = NULL;
if (pFont)
{
pFont->get_hFont(&hFont);
m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
}
pFontDisp->Release();
}
// Invalidate the control
m_MyEdit.Invalidate();
m_MyEdit.UpdateWindow();
COleControl::OnFontChanged();
}
COleControl::OnForeColorChanged
Chamado pelo framework quando o valor da propriedade ForeColor original mudou.
virtual void OnForeColorChanged();
Observações
A implementação padrão chama InvalidateControl.
Anule esta função se quiser ser notificado após esta alteração.
COleControl::OnFreezeEvents
Chamado pela framework após o contentor chamar IOleControl::FreezeEvents.
virtual void OnFreezeEvents(BOOL bFreeze);
Parâmetros
bFreeze
TRUE se o tratamento de eventos do controlo estiver congelado; caso contrário, FALSO.
Observações
A implementação padrão não faz nada.
Anule esta função se quiser comportamento adicional quando a gestão de eventos estiver congelada ou descongelada.
COleControl::OnGetColorSet
Chamada pela framework quando o contentor chama a IViewObject::GetColorSet função membro.
virtual BOOL OnGetColorSet(
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
LPLOGPALETTE* ppColorSet);
Parâmetros
ptd
Aponta para o dispositivo alvo para o qual a imagem deve ser renderizada. Se este valor for NULL, a imagem deve ser renderizada para um dispositivo alvo predefinido, normalmente um dispositivo de visualização.
hicTargetDev
Especifica o contexto de informação no dispositivo alvo indicado pelo ptd. Este parâmetro pode ser um contexto de dispositivo, mas não é necessariamente um. Se ptd for NULL, hicTargetDev também deve ser NULL.
ppColorSet
Um ponteiro para o local onde o conjunto de cores que será usado deve ser copiado. Se a função não devolver o conjunto de cores, NULL é devolvido.
Valor de retorno
Diferente de zero se um conjunto de cores válido for devolvido; caso contrário, 0.
Observações
O contentor chama esta função para obter todas as cores necessárias para desenhar o controlo OLE. O recipiente pode usar os conjuntos de cores obtidos em conjunto com as cores necessárias para definir a paleta geral de cores. A implementação padrão devolve FALSE.
Sobrescrita esta função para realizar qualquer processamento especial deste pedido.
COleControl::OnGetControlInfo
Chamado pelo framework quando o contentor do controlo solicitou informações sobre o controlo.
virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);
Parâmetros
pControlInfo
Apontar para uma estrutura CONTROLINFO a preencher.
Observações
Esta informação consiste principalmente numa descrição das chaves mnemónicas do controlo. A implementação padrão preenche o pControlInfo com informação por defeito.
Anule esta função se o seu controlo precisar de processar chaves mnemónicas.
COleControl::OnGetDisplayString
Chamado pelo framework para obter uma cadeia que representa o valor atual da propriedade identificada por dispid.
virtual BOOL OnGetDisplayString(
DISPID dispid,
CString& strValue);
Parâmetros
dispid
O ID de despacho de uma propriedade do controlo.
strValue
Uma referência a um objeto CString através do qual uma cadeia será devolvida.
Valor de retorno
Diferente de zero se uma cadeia tiver sido devolvida em strValue; caso contrário, 0.
Observações
Substitua esta função se o seu controlo tiver uma propriedade cujo valor não pode ser convertido diretamente para uma cadeia de caracteres e quiser que o valor da propriedade seja apresentado num navegador de propriedades fornecido por contentores.
COleControl::OnGetInPlaceMenu
É chamado pelo framework quando o controlo é ativado pela interface para obter que o menu seja fundido no menu existente do contentor.
virtual HMENU OnGetInPlaceMenu();
Valor de retorno
A alavanca do menu do controlo, ou NULL se o controlo não tiver nenhum. A implementação padrão devolve NULL.
Observações
Para mais informações sobre a fusão de recursos OLE, consulte o artigo Menus and Resources (OLE).
COleControl::OnGetNaturalExtent
Chamado pelo framework em resposta a um pedido de IViewObjectEx::GetNaturalExtent um contentor.
virtual BOOL OnGetNaturalExtent(
DWORD dwAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
DVEXTENTINFO* pExtentInfo,
LPSIZEL psizel);
Parâmetros
dwAspect
Especifica como o objeto deve ser representado. As representações incluem conteúdo, um ícone, uma miniatura ou um documento impresso. Os valores válidos são retirados da enumeração DVASPECT ou DVASPECT2.
lindex
A parte do objeto que é de interesse. Neste momento, só -1 é válida.
ptd
Aponta para a estrutura DVTARGETDEVICE que define o dispositivo alvo para o qual o tamanho do objeto deve ser devolvido.
hicTargetDev
Especifica o contexto de informação para o dispositivo alvo indicado pelo parâmetro ptd do qual o objeto pode extrair métricas do dispositivo e testar as capacidades do dispositivo. Se ptd for NULL, o objeto deve ignorar o valor no parâmetro hicTargetDev .
pExtentInfo
Aponta para a DVEXTENTINFO estrutura que especifica os dados de dimensionamento. A DVEXTENTINFO estrutura é:
typedef struct tagExtentInfo
{
UINT cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
O membro dwExtentMode da estrutura pode assumir um de dois valores:
DVEXTENT_CONTENT Pergunte qual deve ser o tamanho do controlo para encaixar exatamente o conteúdo (snap to size)
DVEXTENT_INTEGRAL Ao redimensionar, passe o tamanho proposto ao controlo
Psizel
Aponta para dados de dimensionamento devolvidos pelo controlo. Os dados de dimensionamento devolvidos são definidos para -1 para qualquer dimensão que não tenha sido ajustada.
Valor de retorno
Diferente de zero se devolver ou ajustar o tamanho com sucesso; caso contrário, 0.
Observações
Sobrescreva esta função para devolver o tamanho de exibição do objeto mais próximo do modo de tamanho e extensão proposto na DVEXTENTINFO estrutura. A implementação padrão devolve FALSE e não faz ajustes ao tamanho.
COleControl::OnGetPredefinedStrings
Chamado pelo framework para obter um conjunto de cadeias pré-definidas que representam os valores possíveis para uma propriedade.
virtual BOOL OnGetPredefinedStrings(
DISPID dispid,
CStringArray* pStringArray,
CDWordArray* pCookieArray);
Parâmetros
dispid
O ID de despacho de uma propriedade do controlo.
pStringArray
Um array de strings a ser preenchido com valores de retorno.
pCookieArray
Um array DWORD para ser preenchido com valores de retorno.
Valor de retorno
Não nulos elementos se foram adicionados a pStringArray e pCookieArray.
Observações
Anule esta função se o seu controlo tiver uma propriedade com um conjunto de valores possíveis que podem ser representados por cadeias. Para cada elemento adicionado ao pStringArray, deve adicionar um elemento "cookie" correspondente ao pCookieArray. Estes valores de "cookie" podem ser posteriormente passados pela estrutura para a COleControl::OnGetPredefinedValue função.
COleControl::OnGetPredefinedValue
Chamado pelo framework para obter o valor correspondente a uma das cadeias pré-definidas anteriormente devolvidas por um sobreposição de COleControl::OnGetPredefinedStrings.
virtual BOOL OnGetPredefinedValue(
DISPID dispid,
DWORD dwCookie,
VARIANT* lpvarOut);
Parâmetros
dispid
O ID de despacho de uma propriedade do controlo.
dwCookie
Um valor de cookie anteriormente devolvido por uma sobreposição de COleControl::OnGetPredefinedStrings.
lpvarOut
Apontar para uma VARIANT estrutura através da qual o valor de uma propriedade será devolvido.
Valor de retorno
Não nulo se um valor tiver sido devolvido em lpvarOut; caso contrário, 0.
COleControl::OnGetViewExtent
Chamado pelo framework em resposta ao pedido IViewObject2::GetExtent de um contentor.
virtual BOOL OnGetViewExtent(
DWORD dwDrawAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
LPSIZEL lpsizel);
Parâmetros
dwDrawAspect
DWORD que descreve qual forma, ou aspecto, de um objeto deve ser exibido. Os valores válidos são retirados da enumeração DVASPECT ou DVASPECT2.
lindex
A parte do objeto que é de interesse. Neste momento, só -1 é válida.
ptd
Aponta para a estrutura DVTARGETDEVICE que define o dispositivo alvo para o qual o tamanho do objeto deve ser devolvido.
Ipsizel
Aponta para o local onde o tamanho do objeto é devolvido.
Valor de retorno
Não nula se a informação de extensão for devolvida com sucesso; caso contrário, 0.
Observações
Anule esta função se o seu controlo usar desenho em duas passas, e as suas partes opacas e transparentes tiverem dimensões diferentes.
COleControl::OnGetViewRect
Chamado pelo framework em resposta a um pedido de IViewObjectEx::GetRect um contentor.
virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);
Parâmetros
dwAspect
DWORD que descreve qual forma, ou aspecto, de um objeto deve ser exibido. Os valores válidos são retirados da enumeração DVASPECT ou DVASPECT2:
DVASPECT_CONTENT Retângulo delimitador de todo o objeto. Canto superior esquerdo na origem e tamanho do objeto iguais à extensão devolvida por
GetViewExtent.DVASPECT_OPAQUE Objetos com uma região retangular opaca devolvem esse retângulo. Outros falham.
DVASPECT_TRANSPARENT Retângulo que cobre todas as partes transparentes ou irregulares.
pRect
Aponta para a estrutura RECTL que especifica o retângulo onde o objeto deve ser desenhado. Este parâmetro controla a posição e o alongamento do objeto.
Valor de retorno
Não nulo se o retângulo com o tamanho do objeto for devolvido com sucesso; caso contrário, 0.
Observações
O tamanho do objeto é convertido por OnGetViewRect num retângulo começando numa posição específica (o padrão é o canto superior esquerdo do ecrã). Anule esta função se o seu controlo usar desenho em duas passas, e as suas partes opacas e transparentes tiverem dimensões diferentes.
COleControl::OnGetViewStatus
Chamado pelo framework em resposta a um pedido de IViewObjectEx::GetViewStatus um contentor.
virtual DWORD OnGetViewStatus();
Valor de retorno
Um dos valores da enumeração VIEWSTATUS se bem-sucedida; caso contrário, 0. Os valores possíveis são qualquer combinação dos seguintes:
| Nome | Description |
|---|---|
| VIEWSTATUS_OPAQUE | O objeto é completamente opaco. Se este bit não estiver definido, o objeto contém partes transparentes. Esta parte aplica-se apenas a aspetos relacionados com o conteúdo e não a DVASPECT_ICON ou DVASPECT_DOCPRINT. |
| VIEWSTATUS_SOLIDBKGND | O objeto tem um fundo sólido (composto por uma cor sólida, não um padrão de pincel). Esta parte só é significativa se VIEWSTATUS_OPAQUE estiver definida e se aplicar apenas a aspetos relacionados com o conteúdo, e não a DVASPECT_ICON ou DVASPECT_DOCPRINT. |
| VIEWSTATUS_DVASPECTOPAQUE | O objeto suporta DVASPECT_OPAQUE. Todos os métodos IViewObjectEx que tomam um aspeto de desenho como parâmetro podem ser chamados com este aspeto. |
| VIEWSTATUS_DVASPECTTRANSPARENT | O objeto suporta DVASPECT_TRANSPARENT. Todos IViewObjectEx os métodos que tomam um aspeto de desenho como parâmetro podem ser chamados com este aspeto. |
Observações
Anule esta função se o seu controlo usar desenho em duas passagens. A implementação padrão devolve VIEWSTATUS_OPAQUE.
COleControl::OnHideToolBars
É chamado pelo framework quando o controlo está desativado UI.
virtual void OnHideToolBars();
Observações
A implementação deve ocultar todas as barras de ferramentas apresentadas por OnShowToolbars.
COleControl::OnInactive MouseMove
Chamada pelo contentor para o objeto inativo sob o ponteiro do rato ao receber uma mensagem WM_MOUSEMOVE.
virtual void OnInactiveMouseMove(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwKeyState);
Parâmetros
lprcBounds
O retângulo delimitador do objeto, nas coordenadas do cliente da janela que o contém. Indica ao objeto a sua posição e tamanho exatos no ecrã quando a mensagem WM_MOUSEMOVE foi recebida.
x
A coordenada x da localização do rato nas coordenadas do cliente da janela que contém.
y
A coordenada y da localização do rato nas coordenadas do cliente da janela que contém.
dwKeyState
Identifica o estado atual das teclas modificadoras do teclado no teclado. Valores válidos podem ser uma combinação de qualquer uma das bandeiras MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.
Observações
Note que as coordenadas cliente da janela (píxeis) são usadas para passar a posição do cursor do rato. Isto é possível também ao passar o retângulo delimitador do objeto no mesmo sistema de coordenadas.
COleControl::OnInactiveSetCursor
Chamado pelo contentor para o objeto inativo sob o ponteiro do rato ao receber uma mensagem WM_SETCURSOR.
virtual BOOL OnInactiveSetCursor(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwMouseMsg,
BOOL bSetAlways);
Parâmetros
lprcBounds
O retângulo delimitador do objeto, nas coordenadas do cliente da janela que o contém. Indica ao objeto a sua posição e tamanho exatos no ecrã quando a mensagem WM_SETCURSOR foi recebida.
x
A coordenada x da localização do rato nas coordenadas do cliente da janela que contém.
y
A coordenada y da localização do rato nas coordenadas do cliente da janela que contém.
dwMouseMsg
O identificador da mensagem do rato para a qual ocorreu uma WM_SETCURSOR.
bSetAlways
Especifica se o objeto deve ou não definir o cursor. Se TRUE, o objeto deve definir o cursor; se FALSE, o cursor não é obrigado a definir o cursor, e nesse caso deve devolver S_FALSE.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Note que as coordenadas cliente da janela (píxeis) são usadas para passar a posição do cursor do rato. Isto é possível também ao passar o retângulo delimitador do objeto no mesmo sistema de coordenadas.
COleControl::OnKeyDownEvent
Chamado pelo framework após um evento KeyDown stock ter sido processado.
virtual void OnKeyDownEvent(
USHORT nChar,
USHORT nShiftState);
Parâmetros
nChar
O valor do código da tecla virtual da tecla pressionada. Para uma lista de códigos de chave virtuais padrão, veja Winuser.h
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
Observações
Anule esta função se o seu controlo precisar de acesso à informação chave após o evento ter sido disparado.
COleControl::OnKeyPressEvent
Chamado pelo framework após o evento KeyPress de origem ter sido lançado.
virtual void OnKeyPressEvent(USHORT nChar);
Parâmetros
nChar
Contém o valor do código de tecla virtual da tecla pressionada. Para uma lista de códigos de chave virtuais padrão, veja Winuser.h
Observações
Note que o valor nChar pode ter sido modificado pelo contentor.
Anule esta função se quiser ser notificado após este evento ocorrer.
COleControl::OnKeyUpEvent
Chamado pelo framework após um evento KeyDown stock ter sido processado.
virtual void OnKeyUpEvent(
USHORT nChar,
USHORT nShiftState);
Parâmetros
nChar
O valor do código da tecla virtual da tecla pressionada. Para uma lista de códigos de chave virtuais padrão, veja Winuser.h
nShiftState
Contém uma combinação das seguintes bandeiras:
SHIFT_MASK A tecla SHIFT era pressionada durante a ação.
CTRL_MASK A tecla CTRL era pressionada durante a ação.
ALT_MASK A tecla ALT era pressionada durante a ação.
Observações
Anule esta função se o seu controlo precisar de acesso à informação chave após o evento ter sido disparado.
COleControl::OnMapPropertyToPage
Chamado pelo framework para obter o ID de classe de uma página de propriedades que implementa a edição da propriedade especificada.
virtual BOOL OnMapPropertyToPage(
DISPID dispid,
LPCLSID lpclsid,
BOOL* pbPageOptional);
Parâmetros
dispid
O ID de despacho de uma propriedade do controlo.
lpclsid
Apontador para uma CLSID estrutura através da qual um ID de classe será devolvido.
pbPageOptional
Devolve um indicador de se a utilização da página de propriedades especificada é opcional.
Valor de retorno
Diferente de zero se um ID de classe tiver sido devolvido em lpclsid; caso contrário, 0.
Observações
Substitua esta função para fornecer uma forma de invocar as páginas de propriedades do seu controlo a partir do navegador de propriedades do contentor.
COleControl::OnMnemonic
Chamada pela framework quando o contentor detetou que uma tecla mnemónica do controlo OLE foi pressionada.
virtual void OnMnemonic(LPMSG pMsg);
Parâmetros
pMsg
Apontador para a mensagem do Windows gerada por uma tecla mnemónica.
COleControl::OnProperties
Chamado pelo framework quando o verbo de propriedades do controlo foi invocado pelo contentor.
virtual BOOL OnProperties(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
Parâmetros
lpMsg
Um apontador para a mensagem do Windows que invocava o verbo.
hWndParent
Uma alavanca para a janela principal do controlo.
lpRect
Um ponteiro para o retângulo usado pelo controlo no contentor.
Valor de retorno
Diferente de zero se a chamada for bem-sucedida; caso contrário, 0.
Observações
A implementação padrão mostra uma caixa de diálogo de propriedade modal.
Também pode usar esta função para fazer com que as páginas de propriedades do seu controlo sejam exibidas. Faça uma chamada à OnProperties função, passando o handle do pai do seu controlo no parâmetro hWndParent . Neste caso, os valores dos parâmetros lpMsg e lpRect são ignorados.
COleControl::OnQueryHitPoint
Chamado pelo framework em resposta a um pedido de IViewObjectEx::QueryHitPoint um contentor.
virtual BOOL OnQueryHitPoint(
DWORD dwAspect,
LPCRECT pRectBounds,
POINT ptlLoc,
LONG lCloseHint,
DWORD* pHitResult);
Parâmetros
dwAspect
Especifica como o objeto é representado. Os valores válidos são retirados da enumeração DVASPECT ou DVASPECT2.
pRectBounds
Apontador para uma RECT estrutura que especifica o retângulo delimitador da área cliente de controlo OLE.
ptlLoc
Apontador para a POINT estrutura que especifica o ponto a ser verificado para um acerto. O ponto é especificado em coordenadas da área cliente do OLE.
lFecharDica
A distância que define "próximo" do ponto verificada para um impacto.
pHitResult
Aponta para o resultado da consulta de resultados. Um dos seguintes valores:
HITRESULT_OUTSIDE ptlLoc está fora do objeto OLE e não está perto.
HITRESULT_TRANSPARENT ptlLoc está dentro dos limites do objeto OLE, mas não perto da imagem. Por exemplo, um ponto no meio de um círculo transparente pode ser HITRESULT_TRANSPARENT.
HITRESULT_CLOSE ptlLoc está dentro ou fora do objeto OLE, mas suficientemente próximo do objeto para ser considerado dentro dele. Objetos pequenos, finos ou detalhados podem usar este valor. Mesmo que um ponto esteja fora do retângulo delimitador de um objeto, pode ainda estar próximo (isto é necessário para atingir objetos pequenos).
HITRESULT_HIT ptlLoc está dentro da imagem do objeto.
Valor de retorno
Não nulo se um resultado de acerto for devolvido com sucesso; caso contrário, 0. Um hit é uma sobreposição com a área de ecrã de controlo OLE.
Observações
Questiona se o retângulo de ecrã de um objeto se sobrepõe ao ponto dado (atinge o ponto).
QueryHitPoint pode ser anulado para testar acertos em objetos não retangulares.
COleControl::OnQueryHitRect
Chamado pelo framework em resposta a um pedido de IViewObjectEx::QueryHitRect um contentor.
virtual BOOL OnQueryHitRect(
DWORD dwAspect,
LPCRECT pRectBounds,
LPCRECT prcLoc,
LONG lCloseHint,
DWORD* pHitResult);
Parâmetros
dwAspect
Especifica como o objeto deve ser representado. Os valores válidos são retirados da enumeração DVASPECT ou DVASPECT2.
pRectBounds
Apontador para uma RECT estrutura que especifica o retângulo delimitador da área cliente de controlo OLE.
prcLoc
Apontador para a RECT estrutura que especifica o retângulo a verificar para um impacto (sobreposição com o retângulo do objeto), em relação ao canto superior esquerdo do objeto.
lFecharDica
Não utilizado.
pHitResult
Aponta para o resultado da consulta de resultados. Um dos seguintes valores:
HITRESULT_OUTSIDE nenhum ponto no retângulo é atingido pelo objeto OLE.
HITRESULT_HIT pelo menos um ponto no retângulo seria um impacto no objeto.
Valor de retorno
Não nulo se um resultado de acerto for devolvido com sucesso; caso contrário, 0.
Observações
Questiona se o retângulo de exibição de um objeto sobrepõe-se a algum ponto do retângulo dado (atinge o retângulo).
QueryHitRect pode ser anulado para testar acertos em objetos não retangulares.
COleControl::OnRenderData
Chamado pelo framework para recuperar dados no formato especificado.
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
Parâmetros
lpFormatEtc
Aponta para a estrutura FORMATETC que especifica o formato em que a informação é solicitada.
lpStgMedium
Aponta para uma estrutura STGMEDIUM na qual os dados devem ser devolvidos.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
O formato especificado é um previamente colocado no objeto de controlo usando as funções membros DelayRenderData ou DelayRenderFileData para renderização atrasada. A implementação padrão desta função chama OnRenderFileData ou OnRenderGlobalData, respetivamente, se o meio de armazenamento fornecido for um ficheiro ou memória. Se o formato solicitado for CF_METAFILEPICT ou o formato de conjunto de propriedades persistente, a implementação por defeito renderiza os dados apropriados e devolve dados não nulos. Caso contrário, devolve 0 e não faz nada.
Se lpStgMedium-tymed> for TYMED_NULL, o STGMEDIUM deve ser alocado e preenchido conforme especificado por lpFormatEtc-tymed>. Se não TYMED_NULL, o STGMEDIUM deve ser preenchido no local com os dados.
Substitua esta função para fornecer os seus dados no formato e suporte solicitados. Dependendo dos seus dados, pode querer sobrepor uma das outras versões desta função. Se os teus dados forem pequenos e fixos em tamanho, substitui OnRenderGlobalData. Se os seus dados estiverem num ficheiro, ou forem de tamanho variável, substitua OnRenderFileData.
Para mais informações, consulte as FORMATETC estruturas e STGMEDIUM no SDK do Windows.
COleControl::OnRenderFileData
Chamado pelo framework para recuperar dados no formato especificado quando o meio de armazenamento é um ficheiro.
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
Parâmetros
lpFormatEtc
Aponta para a estrutura FORMATETC que especifica o formato em que a informação é solicitada.
PFile
Aponta para um objeto CFile no qual os dados devem ser renderizados.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
O formato especificado é aquele previamente colocado no objeto de controlo usando a função membro DelayRenderData para renderização atrasada. A implementação padrão desta função simplesmente devolve FALSE.
Substitua esta função para fornecer os seus dados no formato e suporte solicitados. Dependendo dos teus dados, podes querer sobrepor uma das outras versões desta função. Se quiseres gerir múltiplos suportes de armazenamento, substitui OnRenderData. Se os seus dados estiverem num ficheiro, ou forem de tamanho variável, substitua OnRenderFileData.
Para mais informações, consulte a FORMATETC estrutura no SDK do Windows.
COleControl::OnRenderGlobalData
Chamado pelo framework para recuperar dados no formato especificado quando o meio de armazenamento especificado é memória global.
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
Parâmetros
lpFormatEtc
Aponta para a estrutura FORMATETC que especifica o formato em que a informação é solicitada.
phGlobal
Aponta para um handle para a memória global onde os dados devem ser devolvidos. Se não tiver sido alocada memória, este parâmetro pode ser NULL.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
O formato especificado é aquele previamente colocado no objeto de controlo usando a função membro DelayRenderData para renderização atrasada. A implementação padrão desta função simplesmente devolve FALSE.
Se phGlobal for NULL, então um novo HGLOBAL deve ser alocado e devolvido em phGlobal. Caso contrário, o HGLOBAL especificado pelo phGlobal deve ser preenchido com os dados. A quantidade de dados colocada no HGLOBAL não deve exceder o tamanho atual do bloco de memória. Além disso, o bloco não pode ser realocado para um tamanho maior.
Substitua esta função para fornecer os seus dados no formato e suporte solicitados. Dependendo dos seus dados, pode querer sobrepor uma das outras versões desta função. Se quiseres gerir múltiplos suportes de armazenamento, substitui OnRenderData. Se os seus dados estiverem num ficheiro, ou forem de tamanho variável, substitua OnRenderFileData.
Para mais informações, consulte a FORMATETC estrutura no SDK do Windows.
COleControl::OnResetState
Chamada pelo framework quando as propriedades do controlo devem ser definidas para os seus valores padrão.
virtual void OnResetState();
Observações
A implementação padrão chama DoPropExchange, passando um CPropExchange objeto que faz com que as propriedades sejam definidas para os seus valores padrão.
O escritor de controlos pode inserir código de inicialização para o controlo OLE neste sistema sobrescritivo. Esta função é chamada quando IPersistStream::Load ou IPersistStorage::Load falha, ou quando IPersistStreamInit::InitNew ou IPersistStorage::InitNew é chamado, sem antes chamar um IPersistStream::Load ou IPersistStorage::Loadoutro.
COleControl::OnSetClientSite
Chamado pela estrutura quando o contentor chamou a função do IOleControl::SetClientSite controlo.
virtual void OnSetClientSite();
Observações
Por defeito, OnSetClientSite verifica se as propriedades do caminho de dados estão carregadas e, se estiverem, chama DoDataPathPropExchange.
Substitua esta função para realizar qualquer processamento especial desta notificação. Em particular, as sobrescrituras desta função devem chamar a classe base.
COleControl::OnSetData
Chamado pelo framework para substituir os dados do controlo pelos dados especificados.
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
Parâmetros
lpFormatEtc
Apontador para uma estrutura FORMATETC que especifica o formato dos dados.
lpStgMedium
Apontador para uma estrutura STGMEDIUM onde os dados residem.
bLançamento
TRUE se o controlo libertar o meio de armazenamento; FALSE se o controlo não libertar o meio de armazenamento.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Se os dados estiverem no formato de conjunto de propriedades persistentes, a implementação padrão modifica o estado do controlo em conformidade. Caso contrário, a implementação padrão não faz nada. Se bRelease for VERDADEIRO, então faz-se uma chamada para ReleaseStgMedium ; caso contrário, não.
Substitua esta função para substituir os dados do controlo pelos dados especificados.
Para mais informações, consulte as FORMATETC estruturas e STGMEDIUM no SDK do Windows.
COleControl::OnSetExtent
Chamada pelo framework quando a extensão do controlo precisa de ser alterada, como resultado de uma chamada ao IOleObject::SetExtent.
virtual BOOL OnSetExtent(LPSIZEL lpSizeL);
Parâmetros
lpSizeL
Um ponteiro para a SIZEL estrutura que usa inteiros longos para representar a largura e altura do controlo, expressas em unidades HIMÉTRICAS.
Valor de retorno
Diferente de zero se a alteração de tamanho fosse aceite; caso contrário, 0.
Observações
A implementação padrão trata do redimensionamento da extensão do controlo. Se o controlo estiver ativo no local, é então feita uma chamada ao contentor OnPosRectChanged .
Anule esta função para alterar o redimensionamento padrão do seu controlo.
COleControl::OnSetObjectRects
Chamado pelo framework para implementar uma chamada a IOleInPlaceObject::SetObjectRects.
virtual BOOL OnSetObjectRects(
LPCRECT lpRectPos,
LPCRECT lpRectClip);
Parâmetros
lpRectPos
Um apontador para uma RECT estrutura que indica a nova posição e tamanho do controlo em relação ao contentor.
lpRectClip
Um ponteiro para uma RECT estrutura que indica uma área retangular para a qual o controlo deve ser recortado.
Valor de retorno
Não nula se o reposicionamento fosse aceite; caso contrário, 0.
Observações
A implementação padrão trata automaticamente do reposicionamento e redimensionamento da janela de controlo e devolve TRUE.
Substitua esta função para alterar o comportamento padrão dessa função.
COleControl::OnShowToolBars
É chamado pelo framework quando o controlo foi ativado pela interface.
virtual void OnShowToolBars();
Observações
A implementação padrão não faz nada.
COleControl::OnTextChanged
Chamado pelo framework quando o valor da propriedade Legenda ou Texto de origem mudou.
virtual void OnTextChanged();
Observações
A implementação padrão chama InvalidateControl.
Anule esta função se quiser ser notificado após esta alteração.
COleControl::OnWindowLessMessage
Chamado pelo framework em resposta a um pedido de IOleInPlaceObjectWindowless::OnWindowMessage um contentor.
virtual BOOL OnWindowlessMessage(
UINT msg,
WPARAM wParam,
LPARAM lParam,
LRESULT* plResult);
Parâmetros
msg
Identificador de mensagem conforme passado pelo Windows.
wParam
Como passou pelo Windows. Especifica informação adicional específica da mensagem. O conteúdo deste parâmetro depende do valor do parâmetro msg .
lParam
Como passou pelo Windows. Especifica informação adicional específica da mensagem. O conteúdo deste parâmetro depende do valor do parâmetro msg .
plResult
Código de resultados do Windows. Especifica o resultado do processamento da mensagem e depende da mensagem enviada.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Processa mensagens de janela para controlos sem janelas.
COleControl's OnWindowlessMessage devem ser usados para mensagens de janela que não sejam mensagens de rato e mensagens de teclado.
COleControl fornece SetCapture e SetFocus especificamente para obter captura do rato e foco do teclado para objetos OLE sem janelas.
Como os objetos sem janelas não têm janela, precisam de um mecanismo que permita ao contentor despachar mensagens para eles. Um objeto OLE sem janelas recebe mensagens do seu contentor, através do OnWindowMessage método na IOleInPlaceObjectWindowless interface (uma extensão do IOleInPlaceObject para suporte sem janelas).
OnWindowMessage não aceita um HWND parâmetro.
COleControl::P arentToClient
Traduz as coordenadas de pPoint em coordenadas do cliente.
virtual UINT ParentToClient(
LPCRECT lprcBounds,
LPPOINT pPoint,
BOOL bHitTest = FALSE) const;
Parâmetros
lprcBounds
Apontar para os limites do controlo OLE dentro do contentor. Não a área do cliente, mas a área de todo o controlo, incluindo as fronteiras e as barras de scroll.
pPoint
O apontador para o ponto pai (contentor) deve ser traduzido para as coordenadas da área cliente do controlo.
bHitTest
Especifica se o teste de acerto deve ser feito nesse ponto.
Valor de retorno
Se o bHitTest for FALSO, devolve HTNOWHEREWHERE. Se o bHitTest for VERDADEIRO, devolve a localização onde o ponto pai (contentor) aterrou na área cliente do controlo OLE e é um dos seguintes valores do teste de acerto do rato:
Borda HT: Na borda de uma janela que não tem borda de tamanho.
HTBOTTOM Na borda horizontal inferior da janela.
HT no canto inferior esquerdo da borda da janela.
HT em baixo-direito No canto inferior direito da borda da janela.
HTLEGENDA Numa área de barra de título.
HTCLIENT Numa área de cliente.
HTERROR No fundo do ecrã ou numa linha divisória entre janelas (igual ao HTNOWHERE, exceto que a
DefWndProcfunção Windows produz um bip do sistema a indicar um erro).HTGROWBOX Numa caixa de tamanho.
HTHSCROLL Na barra de scroll horizontal.
HTLEFT Na borda esquerda da janela.
HTMAXBUTTON Num botão Maximizar.
HTMENU Numa área de menu.
HTMINBUTTON Num botão de Minimizar.
HTNOWHERE: No fundo do ecrã ou numa linha divisória entre janelas.
HTREDUCE Num botão de Minimizar.
HTRIGHT: Na borda direita da janela.
HTSIZE Numa caixa de tamanho (igual à HTGROWBOX).
HTSYSMENU Num menu de Controlo ou num botão Fechar numa janela filho.
HTTOP Na borda superior horizontal da janela.
HTTOPLEFT No canto superior esquerdo da borda da janela.
HTTOPRIGHT: No canto superior direito da borda da janela.
HTTRANSPARENT Numa janela atualmente coberta por outra janela.
HTVSCROLL Na barra de scroll vertical.
HTZOOM: Um botão de Maximizar.
Observações
Na entrada , o pPoint é relativo à origem do pai (canto superior esquerdo do contentor). Na saída , o pPoint é relativo à origem da área cliente do controlo OLE (canto superior esquerdo da área cliente do controlo).
COleControl::P ostModalDialog
Notifica o contentor que uma caixa de diálogo modal foi encerrada.
void PostModalDialog(HWND hWndParent = NULL);
Parâmetros
hWndParent
Handle para a janela principal da caixa de diálogo modal.
Observações
Chame esta função depois de mostrar qualquer caixa de diálogo modal. Deve chamar esta função para que o contentor possa ativar quaisquer janelas de topo desativadas por PreModalDialog. Esta função deve ser associada a uma chamada para PreModalDialog.
COleControl::P reModalDialog
Notifica o contentor que uma caixa de diálogo modal está prestes a ser exibida.
void PreModalDialog(HWND hWndParent = NULL);
Parâmetros
hWndParent
Handle para a janela principal da caixa de diálogo modal.
Observações
Chame esta função antes de mostrar qualquer caixa de diálogo modal. Tem de chamar esta função para que o contentor possa desativar todas as janelas de nível superior. Depois de a caixa de diálogo modal ser apresentada, deve então chamar PostModalDialog.
COleControl::RecreateControlWindow
Destrói e recria a janela do controlo.
void RecreateControlWindow();
Observações
Isto pode ser necessário se precisares de alterar as partes de estilo da janela.
COleControl::Atualizar
Obriga a repintar o controlo OLE.
void Refresh();
Observações
Esta função é suportada pela COleControl classe base como um método padrão, chamado Refresh. Isto permite que os utilizadores do seu controlo OLE repintem o controlo num momento específico. Para mais informações sobre este método, consulte o artigo Controlos ActiveX: Métodos.
COleControl::ReleaseCapture
Liberta a captura do rato.
BOOL ReleaseCapture();
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Se o controlo tiver atualmente a captura do rato, a captura é libertada. Caso contrário, esta função não tem efeito.
COleControl::ReleaseDC
Liberta o contexto do dispositivo de visualização de um contentor de um controlo sem janelas, libertando o contexto do dispositivo para uso por outras aplicações.
int ReleaseDC(CDC* pDC);
Parâmetros
pDC
Identifica o contexto do dispositivo contentor a ser libertado.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
A candidatura deve chamar ReleaseDC para cada chamada ao GetDC.
COleControl::ReparentControlWindow
Define o pai do controlo.
virtual void ReparentControlWindow(
HWND hWndOuter,
HWND hWndParent);
Parâmetros
hWndOuter
A maçaneta da janela de controlo.
hWndParent
A maçaneta da nova janela dos pais.
Observações
Chame esta função para reiniciar o pai da janela de controlo.
COleControl::ResetStockProps
Inicializa o estado das COleControl propriedades do stock para os seus valores padrão.
void ResetStockProps();
Observações
As propriedades são: Aparência, BackColor, BorderStyle, Legenda, Ativado, Fonte, ForeColor, hWnd e Texto. Para uma descrição das propriedades do stock, veja Controlos ActiveX: Adicionar Propriedades do Stock.
Pode melhorar o desempenho de inicialização binária de um controlo usando ResetStockProps e ResetVersion para sobrescrever COleControl::OnResetState. Veja o exemplo abaixo. Para mais informações sobre a otimização da inicialização, veja Controlos ActiveX: Otimização.
Example
void CMyAxCtrl::OnResetState()
{
ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
ResetStockProps();
// initialize custom properties here
}
COleControl::ResetVersão
Inicializa o número de versão ao valor especificado.
void ResetVersion(DWORD dwVersionDefault);
Parâmetros
dwVersionDefault
O número de versão a atribuir ao controlo.
Observações
Pode melhorar o desempenho de inicialização binária de um controlo usando ResetVersion e ResetStockProps para sobrescrever COleControl::OnResetState. Veja o exemplo em ResetStockProps. Para mais informações sobre a otimização da inicialização, veja Controlos ActiveX: Otimização.
COleControl::ScrollWindow
Permite que um objeto OLE sem janelas percorra uma área dentro da sua imagem ativa no ecrã.
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
Parâmetros
xAmount
Especifica a quantidade, em unidades de dispositivo, de scrolling horizontal. Este parâmetro deve ser um valor negativo para deslocar-se para a esquerda.
yQuantia
Especifica a quantidade, em unidades de dispositivo, de scrolling vertical. Este parâmetro deve ser um valor negativo para subir.
lpRect
Aponta para um objeto CRect ou estrutura RECT que especifica a porção da área cliente do objeto OLE a deslocar, nas coordenadas do cliente da janela que contém. Se o lpRect for NULL, toda a área cliente do objeto OLE é deslocada.
lpClipRect
Aponta para um CRect objeto ou RECT estrutura que especifica o retângulo a prender. Apenas os píxeis dentro do retângulo são deslocados. Os bits fora do retângulo não são afetados mesmo que estejam no rectângulo lpRect . Se lpClipRect for NULL, não é realizado recorte no retângulo de scroll.
COleControl::SelectFontObject
Seleciona uma fonte no contexto de um dispositivo.
CFont* SelectFontObject(
CDC* pDC,
CFontHolder& fontHolder);
Parâmetros
pDC
Apontador para um objeto de contexto do dispositivo.
fontHolder
Referência ao objeto CFontHolder que representa a fonte a selecionar.
Valor de retorno
Um apontador para a fonte previamente selecionada. Quando o chamador termina todas as operações de desenho que utilizam fontHolder, deve voltar a selecionar a fonte previamente selecionada, passando-a como parâmetro para CDC::SelectObject.
COleControl::SelectStockFont
Seleciona a propriedade Fonte original num contexto de dispositivo.
CFont* SelectStockFont(CDC* pDC);
Parâmetros
pDC
O contexto do dispositivo em que a fonte será selecionada.
Valor de retorno
Um apontador para o objeto previamente selecionado CFont . Deves usar CDC::SelectObject para selecionar esta fonte de volta ao contexto do dispositivo quando terminares.
COleControl::SerializeExtent
Serializa ou inicializa o estado do espaço de exibição atribuído ao controlo.
void SerializeExtent(CArchive& ar);
Parâmetros
ar
Um CArchive objeto para serializar para ou a partir de.
Observações
Pode melhorar o desempenho da persistência binária de um controlo usando SerializeExtent, , e SerializeVersion para sobrescrever COleControl::SerializeSerializeStockProps. Veja o exemplo abaixo. Para mais informações sobre a otimização da inicialização, veja Controlos ActiveX: Otimização.
Example
void CMyAxCtrl::Serialize(CArchive &ar)
{
SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
SerializeExtent(ar);
SerializeStockProps(ar);
if (ar.IsStoring())
{ // storing code
}
else
{ // loading code
}
}
COleControl::SerializarStockProps
Serializa ou inicializa o estado das COleControl propriedades de stock: Aparência, Cor de Fundo, Estilo de Bordura, Legenda, Ativado, Fonte, Cor de Frente e Texto.
void SerializeStockProps(CArchive& ar);
Parâmetros
ar
Um CArchive objeto para serializar para ou a partir de.
Observações
Para uma descrição das propriedades do stock, veja Controlos ActiveX: Adicionar Propriedades do Stock.
Pode melhorar o desempenho da persistência binária de um controlo usando SerializeStockProps, , e SerializeVersion para sobrescrever COleControl::SerializeSerializeExtent. Para um exemplo, veja o código em SerializeExtent. Para mais informações sobre a otimização da inicialização, veja Controlos ActiveX: Otimização.
COleControl::SerializeVersion
Serializa ou inicializa o estado da informação de versão de um controlo.
DWORD SerializeVersion(
CArchive& ar,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
Parâmetros
ar
Um CArchive objeto para serializar para ou a partir de.
dwVersionDefault
O número de versão atual do controlo.
bConvert
Indica se os dados persistentes devem ser convertidos para o formato mais recente quando são guardados, ou mantidos no mesmo formato que tinham quando foram carregados.
Valor de retorno
O número de versão do controlo. Se o arquivo especificado estiver a carregar, SerializeVersion devolve a versão carregada desse arquivo. Caso contrário, devolve a versão atualmente carregada.
Observações
Pode melhorar o desempenho da persistência binária de um controlo usando SerializeVersion, , e SerializeStockProps para sobrescrever COleControl::SerializeSerializeExtent. Para um exemplo, veja o código em SerializeExtent. Para mais informações sobre a otimização da inicialização, veja Controlos ActiveX: Otimização.
COleControl::SetAparência
Define o valor da propriedade de aparência do seu controlo.
void SetAppearance (short sAppearance);
Parâmetros
Aparência
Um short valor (VT_I2) a ser usado para a aparência do seu controlo. Um valor zero define a aparência do controlo para plano e um valor 1 define a aparência do controlo para 3D.
Observações
Para mais informações sobre propriedades de ações, consulte Controlos ActiveX: Propriedades.
COleControl::SetBackColor
Define o valor da propriedade BackColor original do seu controlo.
void SetBackColor(OLE_COLOR dwBackColor);
Parâmetros
dwBackColor
Um valor OLE_COLOR a ser usado para o desenho de fundo do teu controlo.
Observações
Para mais informações sobre a utilização desta propriedade e outras relacionadas com isso, consulte o artigo Controlos ActiveX: Propriedades.
COleControl::SetBorderStyle
Define o valor da propriedade BorderStyle de origem do seu controlo.
void SetBorderStyle(short sBorderStyle);
Parâmetros
sBorderStyle
O novo estilo de fronteira para o controlo; 0 indica que não há fronteira e 1 indica uma borda normal.
Observações
A janela de controlo será então recriada e OnBorderStyleChanged chamada.
COleControl::SetCapture
Faz com que a janela do contentor do controlo tome posse da captura do rato em nome do controlo.
CWnd* SetCapture();
Valor de retorno
Um apontador para o CWnd objeto janela que anteriormente recebeu entrada do rato.
Observações
Se o controlo estiver ativado e sem janelas, esta função faz com que a janela do contentor do controlo tome posse da captura do rato, em nome do controlo. Caso contrário, esta função faz com que o próprio controlo tome posse da captura do rato (igual a CWnd::SetCapture).
COleControl::SetControlSize
Define o tamanho da janela de controlo OLE e notifica o contentor que o local de controlo está a mudar.
BOOL SetControlSize(int cx, int cy);
Parâmetros
CX
Especifica a nova largura do controlo em pixels.
cy
Especifica a nova altura do controlo em pixels.
Valor de retorno
Diferente de zero se a chamada fosse bem-sucedida; caso contrário, 0.
Observações
Esta função não deve ser usada no construtor do seu controlo.
Note que todas as coordenadas das janelas de controlo são relativas ao canto superior esquerdo do controlo.
COleControl::SetEnabled
Define o valor de propriedade permitido do seu controlo.
void SetEnabled(BOOL bEnabled);
Parâmetros
bEnabled
TRUE se o controlo for ativado; caso contrário, FALSO.
Observações
Após definir esta propriedade, OnEnabledChange é chamado.
COleControl::SetFocus
Faz com que a janela do contentor do controlo assuma o foco de entrada em nome do controlo.
CWnd* SetFocus();
Valor de retorno
Um ponteiro para o CWnd objeto janela que anteriormente tinha o foco de entrada, ou NULL se não existir tal janela.
Observações
Se o controlo estiver ativado e sem janelas, esta função faz com que a janela do contentor do controlo assuma o foco de entrada, em nome do controlo. O foco de entrada direciona a entrada do teclado para a janela do contentor, e o contentor despacha todas as mensagens subsequentes do teclado para o objeto OLE que chama SetFocus. Qualquer janela que antes tivesse o foco de entrada perde-o.
Se o controlo não for sem janelas, esta função faz com que o próprio controlo tome posse do foco de entrada (igual a CWnd::SetFocus).
COleControl::SetFont
Define a propriedade Font original do teu controlo.
void SetFont(LPFONTDISP pFontDisp);
Parâmetros
pFontDisp
Um apontador para uma interface de despacho de fontes.
COleControl::SetForeColor
Define o valor da propriedade ForeColor original do seu controlo.
void SetForeColor(OLE_COLOR dwForeColor);
Parâmetros
dwForeColor
Um valor OLE_COLOR a usar para desenhar em primeiro plano o seu controlo.
Observações
Para mais informações sobre a utilização desta propriedade e outras relacionadas com isso, consulte o artigo Controlos ActiveX: Propriedades.
COleControl::SetInitialDataFormats
Chamado pelo framework para inicializar a lista de formatos de dados suportados pelo controlo.
virtual void SetInitialDataFormats();
Observações
A implementação padrão especifica dois formatos: CF_METAFILEPICT e o conjunto de propriedades persistente.
COleControl::SetInitialSize
Define o tamanho de um controlo OLE quando apresentado pela primeira vez num contentor.
void SetInitialSize(
int cx,
int cy);
Parâmetros
CX
A largura inicial do controlo OLE em pixels.
cy
A altura inicial do controlo OLE em píxeis.
Observações
Chame esta função no seu construtor para definir o tamanho inicial do seu controlo. O tamanho inicial é medido em unidades de dispositivo, ou pixels. Recomenda-se que esta chamada seja feita no construtor do seu controlo.
COleControl::SetModifiedFlag
Altera o estado modificado de um controlo.
void SetModifiedFlag(BOOL bModified = TRUE);
Parâmetros
bModified
O novo valor para a bandeira modificada do controlo. TRUE indica que o estado do controlo foi modificado; FALSE indica que o estado do controlo acabou de ser salvo.
Observações
Chame esta função sempre que ocorrer uma alteração que afete o estado persistente do seu controlo. Por exemplo, se o valor de uma propriedade persistente mudar, chame esta função com bModifiedTRUE.
COleControl::SetNotAllowed
Indica que um pedido de edição falhou.
void SetNotPermitted();
Observações
Chame esta função quando BoundPropertyRequestEdit falhar. Esta função lança uma exceção de tipo COleDispScodeException para indicar que a operação de conjunto não foi permitida.
COleControl::SetNotSupported
Previne a modificação do valor de propriedade de um controlo pelo utilizador.
void SetNotSupported();
Observações
Chame esta função em vez da função Set de qualquer propriedade onde a modificação do valor da propriedade pelo utilizador do controlo não seja suportada. Um exemplo seria uma propriedade que é apenas leitura.
COleControl::SetRectInContainer
Define as coordenadas do retângulo do controlo em relação ao contentor, expressas em unidades de dispositivo.
BOOL SetRectInContainer(LPCRECT lpRect);
Parâmetros
lpRect
Um ponteiro para um retângulo contendo as novas coordenadas do controlo em relação ao contentor.
Valor de retorno
Diferente de zero se a chamada fosse bem-sucedida; caso contrário, 0.
Observações
Se o controlo estiver aberto, é redimensionado; caso contrário, a função do OnPosRectChanged contentor é chamada.
COleControl::SetText
Define o valor da propriedade Legenda ou Texto de ações do seu controlo.
void SetText(LPCTSTR pszText);
Parâmetros
pszText
Um apontador para uma cadeia de caracteres.
Observações
Note que as propriedades padrão Legenda e Texto estão ambas mapeadas para o mesmo valor. Isto significa que quaisquer alterações feitas a qualquer uma das propriedades alterarão automaticamente ambas. Em geral, um controlo deve suportar ou a propriedade Legenda ou Texto, mas não ambas.
COleControl::ThrowError
Sinaliza a ocorrência de um erro no teu controlo.
void ThrowError(
SCODE sc,
UINT nDescriptionID,
UINT nHelpID = -1);
void ThrowError(
SCODE sc,
LPCTSTR pszDescription = NULL,
UINT nHelpID = 0);
Parâmetros
SC
O valor do código de estado a reportar. Para uma lista completa de possíveis códigos, consulte o artigo Controlos ActiveX: Tópicos Avançados.
nDescriptionID
O ID de recurso da cadeia de caracteres da exceção a ser reportada.
nHelpID
O ID de ajuda do tema a reportar.
pszDescription
Uma cadeia contendo uma explicação da exceção a ser reportada.
Observações
Esta função só deve ser chamada dentro de uma função Get ou Set para uma propriedade OLE, ou para a implementação de um método de automação OLE. Se precisar de sinalizar erros que ocorrem noutros momentos, deve ativar o evento de Erro de origem.
COleControl::TransformCoords
Transforma os valores das coordenadas entre unidades HIMÉTRICAS e as unidades nativas do contentor.
void TransformCoords(
POINTL* lpptlHimetric,
POINTF* lpptfContainer,
DWORD flags);
Parâmetros
lpptlHimetric
Apontador para uma POINTL estrutura contendo coordenadas em unidades HIMÉTRICAS.
lpptfContainer
Apontador para uma POINTF estrutura contendo coordenadas no tamanho unitário do contentor.
flags
Uma combinação dos seguintes valores:
XFORMCOORDS_POSITION Uma posição no contentor.
XFORMCOORDS_SIZE Tamanho A no recipiente.
XFORMCOORDS_HIMETRICTOCONTAINER Transformar as unidades HIMÉTRICAS nas unidades do contentor.
XFORMCOORDS_CONTAINERTOHIMETRIC Transformar as unidades do contentor em unidades HIMÉTRICAS.
Observações
As duas primeiras bandeiras, XFORMCOORDS_POSITION e XFORMCOORDS_SIZE, indicam se as coordenadas devem ser tratadas como uma posição ou um tamanho. As duas bandeiras restantes indicam a direção da transformação.
COleControl::TranslateColor
Converte um valor de cor do tipo de dado OLE_COLOR para o tipo de dados COLORREF .
COLORREF TranslateColor(
OLE_COLOR clrColor,
HPALETTE hpal = NULL);
Parâmetros
clrColor
Um tipo de dado OLE_COLOR. Para mais informações, consulte a função OleTranslateColor do Windows.
HPAL
Uma pega para uma paleta opcional; pode ser NULO.
Valor de retorno
Um valor de cor RGB (vermelho, verde, azul) de 32 bits que define a cor sólida mais próxima do valor clrColor que o dispositivo pode representar.
Observações
Esta função é útil para traduzir as propriedades padrão ForeColor e BackColor para os tipos COLORREF usados pelas funções membros do CDC .
COleControl::WillAmbientsBeValidDuringLoad
Determina se o seu controlo deve usar os valores das propriedades ambientais como valores padrão, quando é posteriormente carregado a partir do seu estado persistente.
BOOL WillAmbientsBeValidDuringLoad();
Valor de retorno
Não nulas indica que as propriedades ambientes serão válidas; caso contrário, as propriedades ambientais não serão válidas.
Observações
Em alguns contentores, o seu controlo pode não ter acesso às suas propriedades ambientais durante a chamada inicial à sobreposição de COleControl::DoPropExchange. Isto acontece se o contentor chamar IPersistStreamInit::Load ou IPersistStorage::Load antes de chamar IOleObject::SetClientSite (isto é, se não respeitar o bit de estado OLEMISC_SETCLIENTSITEFIRST).
COleControl::WindowProc
Fornece um procedimento Windows para um COleControl objeto.
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parâmetros
mensagem
Especifica a mensagem do Windows a ser processada.
wParam
Fornece informação adicional usada no processamento da mensagem. O valor do parâmetro depende da mensagem.
lParam
Fornece informação adicional usada no processamento da mensagem. O valor do parâmetro depende da mensagem.
Valor de retorno
O valor de retorno da mensagem despachada.
Observações
Chame esta função para despachar mensagens específicas através do mapa de mensagens do controlo.
Consulte também
Exemplo MFC CIRC3
Exemplo de MFC TESTHELP
Classe COlePropertyPage
CWnd Classe
Gráfico de Hierarquia
Classe CFontHolder
Classe CPictureHolder