Partilhar via


Classe COleControl

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

CObject

CCmdTarget

CWnd

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 DefWndProc funçã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