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.