Compartilhar via


Classe CComControlBase

Essa classe fornece métodos para criar e gerenciar controles da ATL.

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

class ATL_NO_VTABLE CComControlBase

Membros

Typedefs públicos

Nome Descrição
CComControlBase::AppearanceType Substitua se sua propriedade de ações m_nAppearance não for do tipo short.

Construtores públicos

Nome Descrição
CComControlBase::CComControlBase O construtor .
CComControlBase::~CComControlBase O destruidor.

Métodos públicos

Nome Descrição
CComControlBase::ControlQueryInterface Recupera um ponteiro para a interface solicitada.
CComControlBase::DoesVerbActivate Verifica se o uso do parâmetro iVerb por IOleObjectImpl::DoVerb ativa a interface do usuário do controle (iVerb é igual a OLEIVERB_UIACTIVATE), define a ação executada quando o usuário clica duas vezes no controle (iVerb é igual a OLEIVERB_PRIMARY), exibe o controle (iVerb é igual a OLEIVERB_SHOW) ou ativa o controle (iVerb é igual a OLEIVERB_INPLACEACTIVATE).
CComControlBase::DoesVerbUIActivate Verifica se o parâmetro iVerb usado por IOleObjectImpl::DoVerb faz com que a interface do usuário do controle seja ativada e retorne TRUE.
CComControlBase::DoVerbProperties Exibe as páginas de propriedades do controle.
CComControlBase::FireViewChange Chame esse método para informar ao contêiner para redesenhar o controle ou notificar os coletores de aviso registrados de que a exibição do controle foi alterada.
CComControlBase::GetAmbientAppearance Recupera DISPID_AMBIENT_APPEARANCE, a configuração de aparência atual para o controle: 0 para simples e 1 para 3D.
CComControlBase::GetAmbientAutoClip Recupera DISPID_AMBIENT_AUTOCLIP, um sinalizador que indica se o contêiner dá suporte ao recorte automático da área de exibição de controle.
CComControlBase::GetAmbientBackColor Recupera DISPID_AMBIENT_BACKCOLOR, a cor da tela de fundo ambiente para todos os controles, definida pelo contêiner.
CComControlBase::GetAmbientCharSet Recupera DISPID_AMBIENT_CHARSET, o conjunto de caracteres ambiente para todos os controles, definido pelo contêiner.
CComControlBase::GetAmbientCodePage Recupera DISPID_AMBIENT_CODEPAGE, o conjunto de caracteres ambiente para todos os controles, definido pelo contêiner.
CComControlBase::GetAmbientDisplayAsDefault Recupera DISPID_AMBIENT_DISPLAYASDEFAULT, um sinalizador que mostrará TRUE se o contêiner tiver marcado o controle neste site como um botão padrão e, portanto, um controle de botão deve desenhar a si com um quadro mais grosso.
CComControlBase::GetAmbientDisplayName Recupera DISPID_AMBIENT_DISPLAYNAME, o nome que o contêiner forneceu ao controle.
CComControlBase::GetAmbientFont Recupera um ponteiro para a interface IFont ambiente do contêiner.
CComControlBase::GetAmbientFontDisp Recupera um ponteiro para a interface de expedição IFontDisp ambiente do contêiner.
CComControlBase::GetAmbientForeColor Recupera DISPID_AMBIENT_FORECOLOR, a cor de primeiro plano ambiente para todos os controles, definida pelo contêiner.
CComControlBase::GetAmbientLocaleID Recupera DISPID_AMBIENT_LOCALEID, o identificador da linguagem usada pelo contêiner.
CComControlBase::GetAmbientMessageReflect Recupera DISPID_AMBIENT_MESSAGEREFLECT, um sinalizador que indica se o contêiner deseja receber mensagens de janela (como WM_DRAWITEM) como eventos.
CComControlBase::GetAmbientPalette Recupera DISPID_AMBIENT_PALETTE, usado para acessar o HPALETTE do contêiner.
CComControlBase::GetAmbientProperty Recupera a propriedade de contêiner especificada por id.
CComControlBase::GetAmbientRightToLeft Recupera DISPID_AMBIENT_RIGHTTOLEFT, a direção na qual o conteúdo é exibido pelo contêiner.
CComControlBase::GetAmbientScaleUnits Recupera DISPID_AMBIENT_SCALEUNITS, as unidades de ambiente do contêiner (como polegadas ou centímetros) para exibições de rotulagem.
CComControlBase::GetAmbientShowGrabHandles Recupera DISPID_AMBIENT_SHOWGRABHANDLES, um sinalizador que indica se o contêiner permite que o controle exiba identificadores de captura para si quando ativo.
CComControlBase::GetAmbientShowHatching Recupera DISPID_AMBIENT_SHOWHATCHING, um sinalizador que indica se o contêiner permite que o controle exiba para si um padrão com hachura quando a interface do usuário está ativa.
CComControlBase::GetAmbientSupportsMnemonics Recupera DISPID_AMBIENT_SUPPORTSMNEMONICS, um sinalizador que indica se o contêiner dá suporte a mnemônicos de teclado.
CComControlBase::GetAmbientTextAlign Recupera DISPID_AMBIENT_TEXTALIGN, o alinhamento de texto preferido pelo contêiner: 0 para alinhamento geral (números à direita, texto à esquerda), 1 para alinhamento à esquerda, 2 para alinhamento central e 3 para alinhamento à direita.
CComControlBase::GetAmbientTopToBottom Recupera DISPID_AMBIENT_TOPTOBOTTOM, a direção na qual o conteúdo é exibido pelo contêiner.
CComControlBase::GetAmbientUIDead Recupera DISPID_AMBIENT_UIDEAD, um sinalizador que indica se o contêiner deseja que o controle responda às ações de interface do usuário.
CComControlBase::GetAmbientUserMode Recupera DISPID_AMBIENT_USERMODE, um sinalizador que indica se o contêiner está no modo de execução (TRUE) ou no modo de design (FALSE).
CComControlBase::GetDirty Retorna o valor de um membro de dados m_bRequiresSave.
CComControlBase::GetZoomInfo Recupera os valores x e y do numerador e do denominador do fator de zoom para um controle ativado para edição in-loco.
CComControlBase::InPlaceActivate Faz com que o controle faça a transição do estado inativo para qualquer estado que o verbo no iVerb indica.
CComControlBase::InternalGetSite Chame esse método para consultar o site de controle para obter um ponteiro para a interface identificada.
CComControlBase::OnDraw Substitua esse método para desenhar seu controle.
CComControlBase::OnDrawAdvanced O padrão OnDrawAdvanced prepara um contexto de dispositivo normalizado para desenho e chama o método OnDraw da classe de controle.
CComControlBase::OnKillFocus Verifica se o controle está ativo in-loco e tem um site de controle válido, depois informa ao contêiner que o controle perdeu o foco.
CComControlBase::OnMouseActivate Verifica se a interface do usuário está no modo de usuário e, em seguida, ativa o controle.
CComControlBase::OnPaint Prepara o contêiner para pintura, obtém a área de cliente do controle e chama o método OnDraw da classe de controle.
CComControlBase::OnSetFocus Verifica se o controle está ativo in-loco e tem um site de controle válido, depois informa ao contêiner que o controle ganhou foco.
CComControlBase::PreTranslateAccelerator Substitua esse método para fornecer seus próprios manipuladores de acelerador de teclado.
CComControlBase::SendOnClose Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle foi fechado.
CComControlBase::SendOnDataChange Notifica todos os coletores de consultoria registrados com o titular da consultoria de que os dados de controle foram alterados.
CComControlBase::SendOnRename Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle conta com um novo moniker.
CComControlBase::SendOnSave Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle foi salvo.
CComControlBase::SendOnViewChange Notifica todos os coletores de consultoria registrados de que a exibição do controle foi alterada.
CComControlBase::SetControlFocus Define ou remove o foco do teclado de ou para o controle.
CComControlBase::SetDirty Define o membro de dados m_bRequiresSave como o valor em bDirty.

Membros de Dados Públicos

Nome Descrição
CComControlBase::m_bAutoSize Sinalizador que indica que o controle não pode ter outro tamanho.
CComControlBase::m_bDrawFromNatural Sinalizador que indica que IDataObjectImpl::GetData e CComControlBase::GetZoomInfo devem definir o tamanho do controle de m_sizeNatural em vez de m_sizeExtent.
CComControlBase::m_bDrawGetDataInHimetric Sinalizador que indica que IDataObjectImpl::GetData deve usar unidades HIMETRIC e não pixels ao desenhar.
CComControlBase::m_bInPlaceActive Sinalizador que indica que o controle está ativo in-loco.
CComControlBase::m_bInPlaceSiteEx Sinalizador que indica que o contêiner dá suporte à interface IOleInPlaceSiteEx e aos recursos de controle OCX96, como controles sem janelas e sem cintilação.
CComControlBase::m_bNegotiatedWnd Sinalizador que indica se o controle foi negociado ou não com o contêiner sobre o suporte para recursos de controle OCX96 (como controles sem cintilação e sem janelas) e se o controle está com janelas ou sem janelas.
CComControlBase::m_bRecomposeOnResize Sinalizador que indica que o controle deseja recompor sua apresentação quando o contêiner altera o tamanho de exibição do controle.
CComControlBase::m_bRequiresSave Sinalizador que indica que o controle foi alterado desde que foi salvo pela última vez.
CComControlBase::m_bResizeNatural Sinalizador que indica que o controle deseja redimensionar sua extensão natural (seu tamanho físico não dimensionado) quando o contêiner altera o tamanho de exibição do controle.
CComControlBase::m_bUIActive O sinalizador que indica se a interface do usuário do controle, como menus e barras de ferramentas, está ativa.
CComControlBase::m_bUsingWindowRgn Sinalizador que indica que o controle está usando a região da janela fornecida pelo contêiner.
CComControlBase::m_bWasOnceWindowless Sinalizador que indica que o controle esteve sem janelas, mas pode ou não estar sem janelas agora.
CComControlBase::m_bWindowOnly Sinalizador que indica que o controle deve ter janelas, mesmo que o contêiner dê suporte a controles sem janelas.
CComControlBase::m_bWndLess Sinalizador que indica que o controle está sem janelas.
CComControlBase::m_hWndCD Contém uma referência ao identificador de janela associado ao controle.
CComControlBase::m_nFreezeEvents Uma contagem do número de vezes que o contêiner congelou eventos (recusou-se a aceitar eventos) sem a intervenção de um descongelamento de eventos (aceitação de eventos).
CComControlBase::m_rcPos A posição em pixels do controle, expressa nas coordenadas do contêiner.
CComControlBase::m_sizeExtent A extensão do controle em unidades HIMETRIC (cada unidade é de 0,01 milímetro) para uma exibição específica.
CComControlBase::m_sizeNatural O tamanho físico do controle em unidades HIMETRIC (cada unidade é de 0,01 milímetro).
CComControlBase::m_spAdviseSink Um ponteiro direto para a conexão de consultoria no contêiner (IAdviseSink do contêiner).
CComControlBase::m_spAmbientDispatch Um objeto CComDispatchDriver que permite recuperar e definir as propriedades do contêiner por meio de um ponteiro IDispatch.
CComControlBase::m_spClientSite Um ponteiro para o site do cliente do controle dentro do contêiner.
CComControlBase::m_spDataAdviseHolder Fornece um meio padrão para manter conexões de consultoria entre objetos de dados e aconselhar coletores.
CComControlBase::m_spInPlaceSite Um ponteiro para o ponteiro de interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless do contêiner.
CComControlBase::m_spOleAdviseHolder Fornece uma implementação padrão de um modo de manter conexões de consultoria.

Comentários

Essa classe fornece métodos para criar e gerenciar controles da ATL. A classe CComControl deriva de CComControlBase. Quando você cria um controle padrão ou um controle DHTML usando o Assistente de Controle da ATL, o assistente derivará automaticamente sua classe de CComControlBase.

Para obter mais informações sobre como criar um controle, consulte o Tutorial da ATL. Para obter mais informações sobre o Assistente de Projeto da ATL, confira o artigo Criar um projeto da ATL.

Requisitos

Cabeçalho: atlctl.h

CComControlBase::AppearanceType

Substitua se sua propriedade de ações m_nAppearance não for do tipo short.

typedef short AppearanceType;

Comentários

O Assistente de Controle da ATL adiciona a propriedade de estoque m_nAppearance do tipo short. Substitua AppearanceType se você usar um tipo de dados diferente.

CComControlBase::CComControlBase

O construtor .

CComControlBase(HWND& h);

Parâmetros

h
O identificador para a janela associada ao controle.

Comentários

Inicializa o tamanho do controle para unidades HIMETRIC 5080X5080 (2"X2") e inicializa os valores de membro de dados CComControlBase como NULL ou FALSE.

CComControlBase::~CComControlBase

O destruidor.

~CComControlBase();

Comentários

Se o controle tiver janelas, ~CComControlBase o destruirá chamando DestroyWindow.

CComControlBase::ControlQueryInterface

Recupera um ponteiro para a interface solicitada.

virtual HRESULT ControlQueryInterface(const IID& iid,
    void** ppv);

Parâmetros

iid
O GUID da interface que está sendo solicitada.

ppv
Um ponteiro para o ponteiro de interface identificado por iid ou NULL se a interface não for encontrada.

Comentários

Somente lida com interfaces na tabela de mapa COM.

Exemplo

// Retrieve the control's IOleObject interface. Note interface 
// is automatically released when pOleObject goes out of scope

CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);

CComControlBase::DoesVerbActivate

Verifica se o uso do parâmetro iVerb por IOleObjectImpl::DoVerb ativa a interface do usuário do controle (iVerb é igual a OLEIVERB_UIACTIVATE), define a ação executada quando o usuário clica duas vezes no controle (iVerb é igual a OLEIVERB_PRIMARY), exibe o controle (iVerb é igual a OLEIVERB_SHOW) ou ativa o controle (iVerb é igual a OLEIVERB_INPLACEACTIVATE).

BOOL DoesVerbActivate(LONG iVerb);

Parâmetros

iVerb
Valor que indica a ação a ser executada por DoVerb.

Valor de retorno

Retornará TRUE se iVerb for igual a OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW ou OLEIVERB_INPLACEACTIVATE. Caso contrário, retornará FALSE.

Comentários

Você pode substituir esse método para definir seu próprio verbo de ativação.

CComControlBase::DoesVerbUIActivate

Verifica se o parâmetro iVerb usado por IOleObjectImpl::DoVerb faz com que a interface do usuário do controle seja ativada e retorne TRUE.

BOOL DoesVerbUIActivate(LONG iVerb);

Parâmetros

iVerb
Valor que indica a ação a ser executada por DoVerb.

Valor de retorno

Retornará TRUE se iVerb for igual a OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW ou OLEIVERB_INPLACEACTIVATE. Caso contrário, o método retornará FALSE.

CComControlBase::DoVerbProperties

Exibe as páginas de propriedades do controle.

HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);

Parâmetros

prcPosRec
Reservado.

hwndParent
Identificador da janela que contém o controle.

Valor de retorno

Um dos valores HRESULT padrão.

Exemplo

// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages 
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, 
   LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
   DoVerbProperties(NULL, ::GetActiveWindow());
   return 0L;
}

 

MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)

CComControlBase::FireViewChange

Chame esse método para informar ao contêiner para redesenhar o controle ou notificar os coletores de aviso registrados de que a exibição do controle foi alterada.

HRESULT FireViewChange();

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

Se o controle estiver ativo (o membro de dados da classe de controle CComControlBase::m_bInPlaceActive for TRUE), ele notificará o contêiner que você deseja redesenhar todo o controle. Se o controle estiver inativo, ele notificará os coletores de aconselhamento registrados do controle (por meio do membro de dados da classe de controle CComControlBase::m_spAdviseSink) que a exibição do controle foi alterada.

Exemplo

STDMETHODIMP CMyControl::put_Shape(int newVal)
{
   // store newVal in m_nShape user-defined member
   m_nShape = newVal;

   // notify container to redraw control
   FireViewChange();
   return S_OK;
}

CComControlBase::GetAmbientAppearance

Recupera DISPID_AMBIENT_APPEARANCE, a configuração de aparência atual para o controle: 0 para simples e 1 para 3D.

HRESULT GetAmbientAppearance(short& nAppearance);

Parâmetros

nAppearance
A propriedade DISPID_AMBIENT_APPEARANCE.

Valor de retorno

Um dos valores HRESULT padrão.

Exemplo

HRESULT OnDraw(ATL_DRAWINFO& di)
{
   short nAppearance;
   RECT& rc = *(RECT*)di.prcBounds;

   // draw 3D border if AmbientAppearance is not supported or is set to 1 
   HRESULT hr = GetAmbientAppearance(nAppearance);
   if (hr != S_OK || nAppearance==1)
   {
      DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
   }
   else
   {
      Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
   }

   SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
   LPCTSTR pszText = _T("ATL 8.0 : MyControl");

   // For security reasons, we recommend that you use the lstrlen function
   // with caution. Here, we can guarantee that pszText is NULL terminated,
   // and therefore it is safe to use this function.
   TextOut(di.hdcDraw, 
      (rc.left + rc.right) / 2, 
      (rc.top + rc.bottom) / 2, 
      pszText, 
      lstrlen(pszText));

   return S_OK;
}

CComControlBase::GetAmbientAutoClip

Recupera DISPID_AMBIENT_AUTOCLIP, um sinalizador que indica se o contêiner dá suporte ao recorte automático da área de exibição de controle.

HRESULT GetAmbientAutoClip(BOOL& bAutoClip);

Parâmetros

bAutoClip
A propriedade DISPID_AMBIENT_AUTOCLIP.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientBackColor

Recupera DISPID_AMBIENT_BACKCOLOR, a cor da tela de fundo ambiente para todos os controles, definida pelo contêiner.

HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);

Parâmetros

BackColor
A propriedade DISPID_AMBIENT_BACKCOLOR.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientCharSet

Recupera DISPID_AMBIENT_CHARSET, o conjunto de caracteres ambiente para todos os controles, definido pelo contêiner.

HRESULT GetAmbientCharSet(BSTR& bstrCharSet);

Parâmetros

bstrCharSet
A propriedade DISPID_AMBIENT_CHARSET.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

CComControlBase::GetAmbientCodePage

Recupera DISPID_AMBIENT_CODEPAGE, a página de código ambiente para todos os controles, definida pelo contêiner.

HRESULT GetAmbientCodePage(ULONG& ulCodePage);

Parâmetros

ulCodePage
A propriedade DISPID_AMBIENT_CODEPAGE.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

CComControlBase::GetAmbientDisplayAsDefault

Recupera DISPID_AMBIENT_DISPLAYASDEFAULT, um sinalizador que mostrará TRUE se o contêiner tiver marcado o controle neste site como um botão padrão e, portanto, um controle de botão deve desenhar a si com um quadro mais grosso.

HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);

Parâmetros

bDisplayAsDefault
A propriedade DISPID_AMBIENT_DISPLAYASDEFAULT.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientDisplayName

Recupera DISPID_AMBIENT_DISPLAYNAME, o nome que o contêiner forneceu ao controle.

HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);

Parâmetros

bstrDisplayName
A propriedade DISPID_AMBIENT_DISPLAYNAME.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientFont

Recupera um ponteiro para a interface IFont ambiente do contêiner.

HRESULT GetAmbientFont(IFont** ppFont);

Parâmetros

ppFont
Um ponteiro para a interface IFont ambiente do contêiner.

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

Se a propriedade for NULL, o ponteiro será NULL. Se o ponteiro não for NULL, o chamador deverá liberar o ponteiro.

CComControlBase::GetAmbientFontDisp

Recupera um ponteiro para a interface de expedição IFontDisp ambiente do contêiner.

HRESULT GetAmbientFontDisp(IFontDisp** ppFont);

Parâmetros

ppFont
Um ponteiro para a interface de expedição IFontDisp ambiente do contêiner.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

Se a propriedade for NULL, o ponteiro será NULL. Se o ponteiro não for NULL, o chamador deverá liberar o ponteiro.

CComControlBase::GetAmbientForeColor

Recupera DISPID_AMBIENT_FORECOLOR, a cor de primeiro plano ambiente para todos os controles, definida pelo contêiner.

HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);

Parâmetros

ForeColor
A propriedade DISPID_AMBIENT_FORECOLOR.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientLocaleID

Recupera DISPID_AMBIENT_LOCALEID, o identificador da linguagem usada pelo contêiner.

HRESULT GetAmbientLocaleID(LCID& lcid);

Parâmetros

lcid
A propriedade DISPID_AMBIENT_LOCALEID.

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

O controle pode usar esse identificador para adaptar sua interface do usuário a diferentes linguagens.

CComControlBase::GetAmbientMessageReflect

Recupera DISPID_AMBIENT_MESSAGEREFLECT, um sinalizador que indica se o contêiner deseja receber mensagens de janela (como WM_DRAWITEM) como eventos.

HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);

Parâmetros

bMessageReflect
A propriedade DISPID_AMBIENT_MESSAGEREFLECT.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientPalette

Recupera DISPID_AMBIENT_PALETTE, usado para acessar o HPALETTE do contêiner.

HRESULT GetAmbientPalette(HPALETTE& hPalette);

Parâmetros

hPalette
A propriedade DISPID_AMBIENT_PALETTE.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientProperty

Recupera a propriedade de contêiner especificada por dispid.

HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);

Parâmetros

dispid
Identificador da propriedade contêiner a ser recuperada.

var
Variável para receber a propriedade.

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

A ATL forneceu um conjunto de funções auxiliares para recuperar propriedades específicas, por exemplo, CComControlBase::GetAmbientBackColor. Se não houver um método adequado disponível, use GetAmbientProperty.

CComControlBase::GetAmbientRightToLeft

Recupera DISPID_AMBIENT_RIGHTTOLEFT, a direção na qual o conteúdo é exibido pelo contêiner.

HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);

Parâmetros

bRightToLeft
A propriedade DISPID_AMBIENT_RIGHTTOLEFT. Defina como TRUE se o conteúdo for exibido da direita para a esquerda, FALSE se ele for exibido da esquerda para a direita.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

CComControlBase::GetAmbientScaleUnits

Recupera DISPID_AMBIENT_SCALEUNITS, as unidades de ambiente do contêiner (como polegadas ou centímetros) para exibições de rotulagem.

HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);

Parâmetros

bstrScaleUnits
A propriedade DISPID_AMBIENT_SCALEUNITS.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientShowGrabHandles

Recupera DISPID_AMBIENT_SHOWGRABHANDLES, um sinalizador que indica se o contêiner permite que o controle exiba identificadores de captura para si quando ativo.

HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);

Parâmetros

bShowGrabHandles
A propriedade DISPID_AMBIENT_SHOWGRABHANDLES.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientShowHatching

Recupera DISPID_AMBIENT_SHOWHATCHING, um sinalizador que indica se o contêiner permite que o controle exiba para si um padrão com hachura quando a interface do usuário do controle está ativa.

HRESULT GetAmbientShowHatching(BOOL& bShowHatching);

Parâmetros

bShowHatching
A propriedade DISPID_AMBIENT_SHOWHATCHING.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientSupportsMnemonics

Recupera DISPID_AMBIENT_SUPPORTSMNEMONICS, um sinalizador que indica se o contêiner dá suporte a mnemônicos de teclado.

HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);

Parâmetros

bSupportsMnemonics
A propriedade DISPID_AMBIENT_SUPPORTSMNEMONICS.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientTextAlign

Recupera DISPID_AMBIENT_TEXTALIGN, o alinhamento de texto preferido pelo contêiner: 0 para alinhamento geral (números à direita, texto à esquerda), 1 para alinhamento à esquerda, 2 para alinhamento central e 3 para alinhamento à direita.

HRESULT GetAmbientTextAlign(short& nTextAlign);

Parâmetros

nTextAlign
A propriedade DISPID_AMBIENT_TEXTALIGN.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetAmbientTopToBottom

Recupera DISPID_AMBIENT_TOPTOBOTTOM, a direção na qual o conteúdo é exibido pelo contêiner.

HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);

Parâmetros

bTopToBottom
A propriedade DISPID_AMBIENT_TOPTOBOTTOM. Defina como TRUE se o texto for exibido de cima para baixo, FALSE se ele for exibido de baixo para cima.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

CComControlBase::GetAmbientUIDead

Recupera DISPID_AMBIENT_UIDEAD, um sinalizador que indica se o contêiner deseja que o controle responda às ações de interface do usuário.

HRESULT GetAmbientUIDead(BOOL& bUIDead);

Parâmetros

bUIDead
A propriedade DISPID_AMBIENT_UIDEAD.

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

Se TRUE, o controle não deverá responder. Esse sinalizador se aplica independentemente do sinalizador DISPID_AMBIENT_USERMODE. Confira CComControlBase::GetAmbientUserMode.

CComControlBase::GetAmbientUserMode

Recupera DISPID_AMBIENT_USERMODE, um sinalizador que indica se o contêiner está no modo de execução (TRUE) ou no modo de design (FALSE).

HRESULT GetAmbientUserMode(BOOL& bUserMode);

Parâmetros

bUserMode
A propriedade DISPID_AMBIENT_USERMODE.

Valor de retorno

Um dos valores HRESULT padrão.

CComControlBase::GetDirty

Retorna o valor de um membro de dados m_bRequiresSave.

BOOL GetDirty();

Valor de retorno

Retorna o valor do membro de dados m_bRequiresSave.

Comentários

Esse valor é definido usando CComControlBase::SetDirty.

CComControlBase::GetZoomInfo

Recupera os valores x e y do numerador e do denominador do fator de zoom para um controle ativado para edição in-loco.

void GetZoomInfo(ATL_DRAWINFO& di);

Parâmetros

di
A estrutura que conterá o numerador e o denominador do fator de zoom. Para obter mais informações, confira ATL_DRAWINFO.

Comentários

O fator de zoom é a proporção do tamanho natural do controle em sua extensão atual.

CComControlBase::InPlaceActivate

Faz com que o controle faça a transição do estado inativo para qualquer estado que o verbo no iVerb indica.

HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);

Parâmetros

iVerb
Valor que indica a ação a ser executada por IOleObjectImpl::DoVerb.

prcPosRect
Ponteiro para a posição do controle in-loco.

Valor de retorno

Um dos valores HRESULT padrão.

Comentários

Antes da ativação, esse método verifica se o controle tem um site cliente, verifica quanto do controle está visível e obtém a localização do controle na janela pai. Depois que o controle é ativado, esse método ativa a interface do usuário do controle e informa ao contêiner para tornar o controle visível.

Esse método também recupera um ponteiro de interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless para o controle e o armazena no membro de dados CComControlBase::m_spInPlaceSite da classe de controle. Os membros de dados CComControlBase::m_bInPlaceSiteEx, CComControlBase::m_bWndLess, CComControlBase::m_bWasOnceWindowless e CComControlBase::m_bNegotiatedWnd da classe de controle são definidos como verdadeiros conforme apropriado.

CComControlBase::InternalGetSite

Chame esse método para consultar o site de controle para obter um ponteiro para a interface identificada.

HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);

Parâmetros

riid
O IID do ponteiro de interface que deve ser retornado em ppUnkSite.

ppUnkSite
Endereço da variável de ponteiro que recebe o ponteiro de interface solicitado em riid.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

Se o site der suporte à interface solicitada no riid, o ponteiro será retornado por meio de ppUnkSite. Caso contrário, ppUnkSite será definido como NULL.

CComControlBase::m_bAutoSize

Sinalizador que indica que o controle não pode ter outro tamanho.

unsigned m_bAutoSize:1;

Comentários

Esse sinalizador é verificado por IOleObjectImpl::SetExtent e, se TRUE, faz com que a função retorne E_FAIL.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

Se você adicionar a opção Dimensionar Automaticamente na guia Propriedades de Estoque do Assistente de Controle da ATL, o assistente criará automaticamente esse membro de dados em sua classe de controle, criará métodos put e get para a propriedade e dará suporte a IPropertyNotifySink para notificar automaticamente o contêiner quando a propriedade for alterada.

CComControlBase::m_bDrawFromNatural

Sinalizador que indica que IDataObjectImpl::GetData e CComControlBase::GetZoomInfo devem definir o tamanho do controle de m_sizeNatural em vez de m_sizeExtent.

unsigned m_bDrawFromNatural:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bDrawGetDataInHimetric

Sinalizador que indica que IDataObjectImpl::GetData deve usar unidades HIMETRIC e não pixels ao desenhar.

unsigned m_bDrawGetDataInHimetric:1;

Comentários

Cada unidade HIMETRIC lógica é de 0,01 milímetro.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bInPlaceActive

Sinalizador que indica que o controle está ativo in-loco.

unsigned m_bInPlaceActive:1;

Comentários

Isso significa que o controle é visível e sua janela, se houver, é visível, mas seus menus e barras de ferramentas podem não estar ativos. O sinalizador m_bUIActive indica que a interface do usuário do controle, como menus, também está ativa.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bInPlaceSiteEx

Sinalizador que indica que o contêiner dá suporte à interface IOleInPlaceSiteEx e aos recursos de controle OCX96, como controles sem janelas e sem cintilação.

unsigned m_bInPlaceSiteEx:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

O membro de dados m_spInPlaceSite aponta para uma interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless, dependendo do valor dos sinalizadores m_bWndLess e m_bInPlaceSiteEx. (O membro de dados m_bNegotiatedWnd deve ser TRUE para que o ponteiro m_spInPlaceSite seja válido.)

Se m_bWndLess for FALSE e m_bInPlaceSiteEx for TRUE, m_spInPlaceSite será um ponteiro de interface IOleInPlaceSiteEx. Confira m_spInPlaceSite de uma tabela mostrando a relação entre esses três membros de dados.

CComControlBase::m_bNegotiatedWnd

Sinalizador que indica se o controle foi negociado ou não com o contêiner sobre o suporte para recursos de controle OCX96 (como controles sem cintilação e sem janelas) e se o controle está com janelas ou sem janelas.

unsigned m_bNegotiatedWnd:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

O sinalizador m_bNegotiatedWnd deve ser TRUE para que o ponteiro m_spInPlaceSite seja válido.

CComControlBase::m_bRecomposeOnResize

Sinalizador que indica que o controle deseja recompor sua apresentação quando o contêiner altera o tamanho de exibição do controle.

unsigned m_bRecomposeOnResize:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

Esse sinalizador é verificado por IOleObjectImpl::SetExtent e, se TRUE, SetExtent notifica o contêiner sobre as alterações de exibição. Se esse sinalizador estiver definido, o bit OLEMISC_RECOMPOSEONRESIZE na enumeração OLEMISC também deverá ser definido.

CComControlBase::m_bRequiresSave

Sinalizador que indica que o controle foi alterado desde que foi salvo pela última vez.

unsigned m_bRequiresSave:1;

Comentários

O valor de m_bRequiresSave pode ser definido com CComControlBase::SetDirty e recuperado com CComControlBase::GetDirty.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bResizeNatural

Sinalizador que indica que o controle deseja redimensionar sua extensão natural (seu tamanho físico não dimensionado) quando o contêiner altera o tamanho de exibição do controle.

unsigned m_bResizeNatural:1;

Comentários

Esse sinalizador é verificado por IOleObjectImpl::SetExtent e, se TRUE, o tamanho passado em SetExtent será atribuído a m_sizeNatural.

O tamanho passado em SetExtent será sempre atribuído a m_sizeExtent, independentemente do valor de m_bResizeNatural.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bUIActive

O sinalizador que indica se a interface do usuário do controle, como menus e barras de ferramentas, está ativa.

unsigned m_bUIActive:1;

Comentários

O sinalizador m_bInPlaceActive indica que o controle está ativo, mas não que sua interface do usuário esteja ativa.

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bUsingWindowRgn

Sinalizador que indica que o controle está usando a região da janela fornecida pelo contêiner.

unsigned m_bUsingWindowRgn:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bWasOnceWindowless

Sinalizador que indica que o controle esteve sem janelas, mas pode ou não estar sem janelas agora.

unsigned m_bWasOnceWindowless:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bWindowOnly

Sinalizador que indica que o controle deve ter janelas, mesmo que o contêiner dê suporte a controles sem janelas.

unsigned m_bWindowOnly:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_bWndLess

Sinalizador que indica que o controle está sem janelas.

unsigned m_bWndLess:1;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

O membro de dados m_spInPlaceSite aponta para uma interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless, dependendo do valor dos sinalizadores m_bWndLess e CComControlBase::m_bInPlaceSiteEx. (O membro de dados CComControlBase::m_bNegotiatedWnd deve ser TRUE para que o ponteiro CComControlBase::m_spInPlaceSite seja válido.)

Se m_bWndLess for TRUE, m_spInPlaceSite será um ponteiro de interface IOleInPlaceSiteWindowless. Confira CComControlBase::m_spInPlaceSite para uma tabela mostrando a relação completa entre esses membros de dados.

CComControlBase::m_hWndCD

Contém uma referência ao identificador de janela associado ao controle.

HWND& m_hWndCD;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_nFreezeEvents

Uma contagem do número de vezes que o contêiner congelou eventos (recusou-se a aceitar eventos) sem a intervenção de um descongelamento de eventos (aceitação de eventos).

short m_nFreezeEvents;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_rcPos

A posição em pixels do controle, expressa nas coordenadas do contêiner.

RECT m_rcPos;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_sizeExtent

A extensão do controle em unidades HIMETRIC (cada unidade é de 0,01 milímetro) para uma exibição específica.

SIZE m_sizeExtent;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

Esse tamanho é escalado pela exibição. O tamanho físico do controle é especificado no membro de dados m_sizeNatural e é fixo.

Você pode converter o tamanho em pixels com a função global AtlHiMetricToPixel.

CComControlBase::m_sizeNatural

O tamanho físico do controle em unidades HIMETRIC (cada unidade é de 0,01 milímetro).

SIZE m_sizeNatural;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

Esse tamanho é fixo, enquanto o tamanho m_sizeExtent é escalado pela exibição.

Você pode converter o tamanho em pixels com a função global AtlHiMetricToPixel.

CComControlBase::m_spAdviseSink

Um ponteiro direto para a conexão de consultoria no contêiner (IAdviseSink do contêiner).

CComPtr<IAdviseSink>
    m_spAdviseSink;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_spAmbientDispatch

Um objeto CComDispatchDriver que permite recuperar e definir as propriedades do objeto por meio de um ponteiro IDispatch.

CComDispatchDriver m_spAmbientDispatch;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_spClientSite

Um ponteiro para o site do cliente do controle dentro do contêiner.

CComPtr<IOleClientSite>
    m_spClientSite;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

CComControlBase::m_spDataAdviseHolder

Fornece um meio padrão para manter conexões de consultoria entre objetos de dados e aconselhar coletores.

CComPtr<IDataAdviseHolder>
    m_spDataAdviseHolder;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

Um objeto de dados é um controle que pode transferir dados e que implementa IDataObject, cujos métodos especificam o formato e a mídia de transferência dos dados.

A interface m_spDataAdviseHolder implementa os métodos IDataObject::DAdvise e IDataObject::DUnadvise para estabelecer e excluir conexões de consultoria com o contêiner. O contêiner do controle deve implementar um coletor de consultoria dando suporte à interface IAdviseSink.

CComControlBase::m_spInPlaceSite

Um ponteiro para o ponteiro de interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless do contêiner.

CComPtr<IOleInPlaceSiteWindowless>
    m_spInPlaceSite;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

O ponteiro m_spInPlaceSite será válido somente se o sinalizador m_bNegotiatedWnd for TRUE.

A seguinte tabela mostra como o tipo de ponteiro m_spInPlaceSite depende dos sinalizadores de membro de dados m_bWndLess e m_bInPlaceSiteEx:

Tipo m_spInPlaceSite Valor m_bWndLess Valor m_bInPlaceSiteEx
IOleInPlaceSiteWindowless TRUE TRUE ou FALSE
IOleInPlaceSiteEx FALSE TRUE
IOleInPlaceSite FALSE FALSE

CComControlBase::m_spOleAdviseHolder

Fornece uma implementação padrão de um modo de manter conexões de consultoria.

CComPtr<IOleAdviseHolder>
    m_spOleAdviseHolder;

Comentários

Observação

Para usar esse membro de dados em sua classe de controle, você deve declará-lo como um membro de dados em sua classe de controle. Sua classe de controle não herdará esse membro de dados da classe base porque ele é declarado em uma união na classe base.

A interface m_spOleAdviseHolder implementa os métodos IOleObject::Advise e IOleObject::Unadvise para estabelecer e excluir conexões de consultoria com o contêiner. O contêiner do controle deve implementar um coletor de consultoria dando suporte à interface IAdviseSink.

CComControlBase::OnDraw

Substitua esse método para desenhar seu controle.

virtual HRESULT OnDraw(ATL_DRAWINFO& di);

Parâmetros

di
Uma referência à estrutura ATL_DRAWINFO que contém informações de desenho, como o aspecto de desenho, os limites de controle e se o desenho é otimizado ou não.

Valor de retorno

Um valor HRESULT padrão.

Comentários

O padrão OnDraw exclui ou restaura o contexto do dispositivo ou não faz nada, dependendo dos sinalizadores definidos em CComControlBase::OnDrawAdvanced.

Um método OnDraw é adicionado automaticamente à classe de controle quando você cria seu controle com o Assistente de Controle da ATL. O padrão OnDraw do assistente desenha um retângulo com o rótulo "ATL 8.0".

Exemplo

Veja o exemplo de CComControlBase::GetAmbientAppearance.

CComControlBase::OnDrawAdvanced

O padrão OnDrawAdvanced prepara um contexto de dispositivo normalizado para desenho e chama o método OnDraw da classe de controle.

virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);

Parâmetros

di
Uma referência à estrutura ATL_DRAWINFO que contém informações de desenho, como o aspecto de desenho, os limites de controle e se o desenho é otimizado ou não.

Valor de retorno

Um valor HRESULT padrão.

Comentários

Substitua esse método se quiser aceitar o contexto do dispositivo passado pelo contêiner sem normalizá-lo.

Confira CComControlBase::OnDraw para obter mais detalhes.

CComControlBase::OnKillFocus

Verifica se o controle está ativo in-loco e tem um site de controle válido, depois informa ao contêiner que o controle perdeu o foco.

LRESULT OnKillFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

Parâmetros

nMsg
Reservado.

wParam
Reservado.

lParam
Reservado.

bHandled
Sinalizador que indica se a mensagem de janela foi tratada com êxito. O padrão é FALSE.

Valor de retorno

Sempre retorna 1.

CComControlBase::OnMouseActivate

Verifica se a interface do usuário está no modo de usuário e, em seguida, ativa o controle.

LRESULT OnMouseActivate(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

Parâmetros

nMsg
Reservado.

wParam
Reservado.

lParam
Reservado.

bHandled
Sinalizador que indica se a mensagem de janela foi tratada com êxito. O padrão é FALSE.

Valor de retorno

Sempre retorna 1.

CComControlBase::OnPaint

Prepara o contêiner para pintura, obtém a área de cliente do controle e chama o método OnDrawAdvanced da classe de controle.

LRESULT OnPaint(UINT /* nMsg */,
    WPARAM wParam,
    LPARAM /* lParam */,
    BOOL& /* lResult */);

Parâmetros

nMsg
Reservado.

wParam
Um HDC existente.

lParam
Reservado.

lResult
Reservado.

Valor de retorno

Sempre retorna zero.

Comentários

Se wParam não é NULL, OnPaint supõe que ele contém um HDC válido e o usa em vez de CComControlBase::m_hWndCD.

CComControlBase::OnSetFocus

Verifica se o controle está ativo in-loco e tem um site de controle válido, depois informa ao contêiner que o controle ganhou foco.

LRESULT OnSetFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

Parâmetros

nMsg
Reservado.

wParam
Reservado.

lParam
Reservado.

bHandled
Sinalizador que indica se a mensagem de janela foi tratada com êxito. O padrão é FALSE.

Valor de retorno

Sempre retorna 1.

Comentários

Envia uma notificação para o contêiner de que o controle recebeu foco.

CComControlBase::PreTranslateAccelerator

Substitua esse método para fornecer seus próprios manipuladores de acelerador de teclado.

BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
    HRESULT& /* hRet */);

Parâmetros

pMsg
Reservado.

hRet
Reservado.

Valor de retorno

Por padrão, retorna FALSE.

CComControlBase::SendOnClose

Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle foi fechado.

HRESULT SendOnClose();

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

Envia uma notificação de que o controle fechou seus coletores de consultoria.

CComControlBase::SendOnDataChange

Notifica todos os coletores de consultoria registrados com o titular da consultoria de que os dados de controle foram alterados.

HRESULT SendOnDataChange(DWORD advf = 0);

Parâmetros

advf
Informe os sinalizadores que especificam como a chamada para IAdviseSink::OnDataChange é feita. Os valores são da enumeração ADVF.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

CComControlBase::SendOnRename

Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle conta com um novo moniker.

HRESULT SendOnRename(IMoniker* pmk);

Parâmetros

pmk
Ponteiro para o novo moniker do controle.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

Envia uma notificação de que o moniker para o controle foi alterado.

CComControlBase::SendOnSave

Notifica todos os coletores de consultoria registrados com o titular da consultoria de que o controle foi salvo.

HRESULT SendOnSave();

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

Envia uma notificação de que o controle acabou de salvar seus dados.

CComControlBase::SendOnViewChange

Notifica todos os coletores de consultoria registrados de que a exibição do controle foi alterada.

HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);

Parâmetros

dwAspect
O aspecto ou a exibição do controle.

lindex
A parte da exibição que mudou. Somente -1 é válido.

Valor de retorno

Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.

Comentários

SendOnViewChange chama IAdviseSink::OnViewChange. Atualmente, o único valor de lindex com suporte é -1, o que indica que toda a exibição é de interesse.

CComControlBase::SetControlFocus

Define ou remove o foco do teclado de ou para o controle.

BOOL SetControlFocus(BOOL bGrab);

Parâmetros

bGrab
Se TRUE, define o foco do teclado para o controle de chamada. Se FALSE, remove o foco do teclado do controle de chamada, desde que ele tenha o foco.

Valor de retorno

Retornará TRUE se o controle receber o foco com êxito; caso contrário, FALSE.

Comentários

Para um controle com janelas, a função de API do Windows SetFocus é chamada. Para um controle sem janelas, IOleInPlaceSiteWindowless::SetFocus é chamado. Por meio dessa chamada, um controle sem janelas obtém o foco do teclado e pode responder às mensagens de janela.

CComControlBase::SetDirty

Define o membro de dados m_bRequiresSave como o valor em bDirty.

void SetDirty(BOOL bDirty);

Parâmetros

bDirty
Valor do membro de dados CComControlBase::m_bRequiresSave.

Comentários

SetDirty(TRUE) deve ser chamado para sinalizar que o controle foi alterado desde que foi salvo pela última vez. O valor de m_bRequiresSave é recuperado com CComControlBase::GetDirty.

Confira também

Classe CComControl
Visão geral da aula