Clase CComControlBase
Esta clase proporciona métodos para crear y administrar controles ATL.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class ATL_NO_VTABLE CComControlBase
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
CComControlBase::AppearanceType | Invalide si la propiedad estándar m_nAppearance no es de tipo short . |
Constructores públicos
Nombre | Descripción |
---|---|
CComControlBase::CComControlBase | Constructor . |
CComControlBase::~CComControlBase | El destructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CComControlBase::ControlQueryInterface | Recupera un puntero a la interfaz solicitada. |
CComControlBase::DoesVerbActivate | Comprueba que el parámetro iVerb usado por IOleObjectImpl::DoVerb activa la interfaz de usuario del control (iVerb es igual a OLEIVERB_UIACTIVATE), define la acción realizada cuando el usuario hace doble clic en el control (iVerb es igual a OLEIVERB_PRIMARY), muestra el control (iVerb es igual a OLEIVERB_SHOW) o activa el control (iVerb es igual a OLEIVERB_INPLACEACTIVATE). |
CComControlBase::DoesVerbUIActivate | Comprueba que el parámetro iVerb usado por IOleObjectImpl::DoVerb hace que la interfaz de usuario del control se active y devuelva TRUE. |
CComControlBase::DoVerbProperties | Muestra las páginas de propiedades del control. |
CComControlBase::FireViewChange | Llame a este método para indicar al contenedor que vuelva a dibujar el control o notifique a los receptores de aviso registrados que la vista del control ha cambiado. |
CComControlBase::GetAmbientAppearance | Recupera DISPID_AMBIENT_APPEARANCE, el valor de apariencia actual del control: 0 para plano y 1 para 3D. |
CComControlBase::GetAmbientAutoClip | Recupera DISPID_AMBIENT_AUTOCLIP, una marca que indica si el contenedor admite el recorte automático del área de visualización del control. |
CComControlBase::GetAmbientBackColor | Recupera DISPID_AMBIENT_BACKCOLOR, el color de fondo ambiente de todos los controles, definido por el contenedor. |
CComControlBase::GetAmbientCharSet | Recupera DISPID_AMBIENT_CHARSET, el juego de caracteres ambiente para todos los controles, definido por el contenedor. |
CComControlBase::GetAmbientCodePage | Recupera DISPID_AMBIENT_CODEPAGE, el juego de caracteres ambiente para todos los controles, definidos por el contenedor. |
CComControlBase::GetAmbientDisplayAsDefault | Recupera DISPID_AMBIENT_DISPLAYASDEFAULT, una marca que es TRUE si el contenedor ha marcado el control en este sitio para que sea un botón predeterminado y, por tanto, un control de botón debe dibujarse con un marco más grueso. |
CComControlBase::GetAmbientDisplayName | Recupera DISPID_AMBIENT_DISPLAYNAME, el nombre que el contenedor ha proporcionado al control. |
CComControlBase::GetAmbientFont | Recupera un puntero a la interfaz IFont de ambiente del contenedor. |
CComControlBase::GetAmbientFontDisp | Recupera un puntero a la interfaz de distribución IFontDisp de ambiente del contenedor. |
CComControlBase::GetAmbientForeColor | Recupera DISPID_AMBIENT_FORECOLOR, el color de primer plano ambiente para todos los controles, definido por el contenedor. |
CComControlBase::GetAmbientLocaleID | Recupera DISPID_AMBIENT_LOCALEID, el identificador del lenguaje usado por el contenedor. |
CComControlBase::GetAmbientMessageReflect | Recupera DISPID_AMBIENT_MESSAGEREFLECT, una marca que indica si el contenedor quiere recibir mensajes de ventana (por ejemplo, WM_DRAWITEM) como eventos. |
CComControlBase::GetAmbientPalette | Recupera DISPID_AMBIENT_PALETTE, que se usa para acceder al HPALETTE del contenedor. |
CComControlBase::GetAmbientProperty | Recupera la propiedad de contenedor especificada por id. |
CComControlBase::GetAmbientRightToLeft | Recupera DISPID_AMBIENT_RIGHTTOLEFT, la dirección en la que el contenedor muestra el contenido. |
CComControlBase::GetAmbientScaleUnits | Recupera DISPID_AMBIENT_SCALEUNITS, las unidades ambientales del contenedor (como pulgadas o centímetros) para las pantallas de etiquetado. |
CComControlBase::GetAmbientShowGrabHandles | Recupera DISPID_AMBIENT_SHOWGRABHANDLES, una marca que indica si el contenedor permite que el control muestre manipuladores de agarre para sí mismo cuando está activo. |
CComControlBase::GetAmbientShowHatching | Recupera DISPID_AMBIENT_SHOWHATCHING, una marca que indica si el contenedor permite al control mostrarse con un patrón sombreado cuando la interfaz de usuario está activa. |
CComControlBase::GetAmbientSupportsMnemonics | Recupera DISPID_AMBIENT_SUPPORTSMNEMONICS, una marca que indica si el contenedor admite teclas de acceso de teclado. |
CComControlBase::GetAmbientTextAlign | Recupera DISPID_AMBIENT_TEXTALIGN, la alineación de texto preferida por el contenedor: 0 para la alineación general (números a la derecha, texto a la izquierda), 1 para la alineación izquierda, 2 para la alineación central y 3 para la alineación derecha. |
CComControlBase::GetAmbientTopToBottom | Recupera DISPID_AMBIENT_TOPTOBOTTOM, la dirección en la que el contenedor muestra el contenido. |
CComControlBase::GetAmbientUIDead | Recupera DISPID_AMBIENT_UIDEAD, una marca que indica si el contenedor quiere que el control responda a las acciones de la interfaz de usuario. |
CComControlBase::GetAmbientUserMode | Recupera DISPID_AMBIENT_USERMODE, una marca que indica si el contenedor está en modo de ejecución (TRUE) o en modo de diseño (FALSE). |
CComControlBase::GetDirty | Devuelve el valor de un miembro de datos m_bRequiresSave . |
CComControlBase::GetZoomInfo | Recupera los valores x e y del numerador y el denominador del factor de zoom para un control activado para la edición en contexto. |
CComControlBase::InPlaceActivate | Hace que el control pase de inactivo a cualquier estado que indique el verbo en iVerb. |
CComControlBase::InternalGetSite | Llame a este método para consultar el sitio de control de un puntero a la interfaz identificada. |
CComControlBase::OnDraw | Invalide este método para dibujar el control. |
CComControlBase::OnDrawAdvanced | El valor predeterminado OnDrawAdvanced prepara un contexto de dispositivo normalizado para dibujar y, después, llama al método OnDraw de la clase de control. |
CComControlBase::OnKillFocus | Comprueba que el control está activo en contexto y tiene un sitio de control válido y, después, informa al contenedor de que el control ha perdido el foco. |
CComControlBase::OnMouseActivate | Comprueba que la interfaz de usuario está en modo de usuario y, después, activa el control. |
CComControlBase::OnPaint | Prepara el contenedor para pintar, obtiene el área cliente del control y, después, llama al método OnDraw de la clase de control. |
CComControlBase::OnSetFocus | Comprueba que el control está activo en contexto y tiene un sitio de control válido y, después, informa al contenedor del que el control ha obtenido el foco. |
CComControlBase::PreTranslateAccelerator | Invalide este método para proporcionar sus propios controladores de acelerador de teclado. |
CComControlBase::SendOnClose | Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que se ha cerrado el control. |
CComControlBase::SendOnDataChange | Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que los datos de control han cambiado. |
CComControlBase::SendOnRename | Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que el control tiene un nuevo moniker. |
CComControlBase::SendOnSave | Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que se ha guardado el control. |
CComControlBase::SendOnViewChange | Notifica a todos los receptores de asesoramiento registrados que la vista del control ha cambiado. |
CComControlBase::SetControlFocus | Establece o quita el foco del teclado hacia o desde el control. |
CComControlBase::SetDirty | Establece el miembro de datos m_bRequiresSave en el valor de bDirty. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CComControlBase::m_bAutoSize | Marca que indica que el control no puede tener otro tamaño. |
CComControlBase::m_bDrawFromNatural | Marca que indica que IDataObjectImpl::GetData y CComControlBase::GetZoomInfo deben establecer el tamaño del control desde m_sizeNatural en lugar de desde m_sizeExtent . |
CComControlBase::m_bDrawGetDataInHimetric | Marca que indica que IDataObjectImpl::GetData debe usar unidades HIMETRIC y no píxeles al dibujar. |
CComControlBase::m_bInPlaceActive | Marca que indica que el control está activo en contexto. |
CComControlBase::m_bInPlaceSiteEx | Marca que indica que el contenedor admite las características de control de interfaz IOleInPlaceSiteEx y OCX96, como controles sin ventanas y sin parpadeo. |
CComControlBase::m_bNegotiatedWnd | Marca que indica si el control ha negociado o no con el contenedor sobre la compatibilidad con las características de control OCX96 (como controles sin parpadeo y sin ventanas) y si el control tiene ventanas o no. |
CComControlBase::m_bRecomposeOnResize | Marca que indica que el control quiere recomponer su presentación cuando el contenedor cambia el tamaño de presentación del control. |
CComControlBase::m_bRequiresSave | Marca que indica que el control ha cambiado desde que la última vez que se guardó. |
CComControlBase::m_bResizeNatural | Marca que indica que el control quiere cambiar el tamaño de su extensión natural (su tamaño físico sin escala) cuando el contenedor cambia el tamaño de la pantalla del control. |
CComControlBase::m_bUIActive | Marca que indica que la interfaz de usuario del control, como menús y barras de herramientas, está activa. |
CComControlBase::m_bUsingWindowRgn | Marca que indica que el control usa la región de ventana proporcionada por el contenedor. |
CComControlBase::m_bWasOnceWindowless | Marca que indica que el control no tiene ventanas, pero puede o no estar sin ventanas ahora. |
CComControlBase::m_bWindowOnly | Marca que indica que el control debe tener ventanas, incluso si el contenedor admite controles sin ventanas. |
CComControlBase::m_bWndLess | Marca que indica que el control no tiene ventana. |
CComControlBase::m_hWndCD | Contiene una referencia al manipulador de ventana asociado al control. |
CComControlBase::m_nFreezeEvents | Recuento del número de veces que el contenedor tiene eventos inmovilizados (rechaza aceptar eventos) sin que intervenga la reanudación de eventos (aceptación de eventos). |
CComControlBase::m_rcPos | Posición en píxeles del control, expresada en las coordenadas del contenedor. |
CComControlBase::m_sizeExtent | La extensión del control en unidades HIMETRIC (cada unidad es de 0,01 milímetros) para una pantalla determinada. |
CComControlBase::m_sizeNatural | El tamaño físico del control en unidades HIMETRIC (cada unidad es de 0,01 milímetros). |
CComControlBase::m_spAdviseSink | Puntero directo a la conexión de asesoramiento en el contenedor (IAdviseSink del contenedor). |
CComControlBase::m_spAmbientDispatch | Objeto CComDispatchDriver que permite recuperar y establecer las propiedades del contenedor a través de un puntero IDispatch . |
CComControlBase::m_spClientSite | Puntero al sitio cliente del control dentro del contenedor. |
CComControlBase::m_spDataAdviseHolder | Proporciona un medio estándar para mantener conexiones de asesoramiento entre objetos de datos y receptores de avisos. |
CComControlBase::m_spInPlaceSite | Puntero al puntero de interfaz del contenedor IOleInPlaceSite, IOleInPlaceSiteEx o IOleInPlaceSiteWindowless. |
CComControlBase::m_spOleAdviseHolder | Proporciona una implementación estándar de una manera de contener conexiones de asesoramiento. |
Comentarios
Esta clase proporciona métodos para crear y administrar controles ATL. La clase CComControl se deriva de CComControlBase
. Al crear un control Estándar o un control DHTML mediante el Asistente para controles ATL, el asistente derivará automáticamente la clase de CComControlBase
.
Para obtener más información sobre cómo crear un control, consulte el Tutorial ATL. Para obtener más información sobre el Asistente para proyectos ATL, consulte el artículo Crear un proyecto ATL.
Requisitos
Encabezado: atlctl.h
CComControlBase::AppearanceType
Invalide si la propiedad estándar m_nAppearance
no es de tipo short
.
typedef short AppearanceType;
Comentarios
El Asistente para controles ATL agrega la propiedad estándar m_nAppearance
de tipo short. Invalide AppearanceType
si usa un tipo de datos diferente.
CComControlBase::CComControlBase
Constructor .
CComControlBase(HWND& h);
Parámetros
h
Manipulador de la ventana asociada al control.
Comentarios
Inicializa el tamaño del control en 5080X5080 unidades HIMETRIC (2"X2") e inicializa los valores de miembro de datos CComControlBase
en NULL o FALSE.
CComControlBase::~CComControlBase
El destructor .
~CComControlBase();
Comentarios
Si el control tiene ventana, ~CComControlBase
la destruye llamando a DestroyWindow.
CComControlBase::ControlQueryInterface
Recupera un puntero a la interfaz solicitada.
virtual HRESULT ControlQueryInterface(const IID& iid,
void** ppv);
Parámetros
iid
GUID de la interfaz que se solicita.
ppv
Puntero al puntero de interfaz identificado por iid o NULL si la interfaz no se encuentra.
Comentarios
Solo administra interfaces de la tabla de asignación COM.
Ejemplo
// 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
Comprueba que el parámetro iVerb usado por IOleObjectImpl::DoVerb
activa la interfaz de usuario del control (iVerb es igual a OLEIVERB_UIACTIVATE), define la acción realizada cuando el usuario hace doble clic en el control (iVerb es igual a OLEIVERB_PRIMARY), muestra el control (iVerb es igual a OLEIVERB_SHOW) o activa el control (iVerb es igual a OLEIVERB_INPLACEACTIVATE).
BOOL DoesVerbActivate(LONG iVerb);
Parámetros
iVerb
Valor que indica la acción que DoVerb
va a realizar.
Valor devuelto
Devuelve TRUE si iVerb es igual a OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW u OLEIVERB_INPLACEACTIVATE; de lo contrario, devuelve FALSE.
Comentarios
Puede invalidar este método para definir su propio verbo de activación.
CComControlBase::DoesVerbUIActivate
Comprueba que el parámetro iVerb usado por IOleObjectImpl::DoVerb
hace que la interfaz de usuario del control se active y devuelva TRUE.
BOOL DoesVerbUIActivate(LONG iVerb);
Parámetros
iVerb
Valor que indica la acción que DoVerb
va a realizar.
Valor devuelto
Devuelve TRUE si iVerb es igual a OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW u OLEIVERB_INPLACEACTIVATE. En caso contrario, el método devuelve FALSE.
CComControlBase::DoVerbProperties
Muestra las páginas de propiedades del control.
HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);
Parámetros
prcPosRec
Reservado.
hwndParent
Manipulador de la ventana que contiene el control.
Valor devuelto
Uno de los valores HRESULT estándar.
Ejemplo
// 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
Llame a este método para indicar al contenedor que vuelva a dibujar el control o notifique a los receptores de aviso registrados que la vista del control ha cambiado.
HRESULT FireViewChange();
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
Si el control está activo (el miembro de datos de clase de control CComControlBase::m_bInPlaceActive es TRUE), notifica al contenedor que desea volver a dibujar todo el control. Si el control está inactivo, notifica a los receptores de aviso registrados del control (mediante el miembro de datos de clase de control CComControlBase::m_spAdviseSink) que ha cambiado la vista del control.
Ejemplo
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, el valor de apariencia actual del control: 0 para plano y 1 para 3D.
HRESULT GetAmbientAppearance(short& nAppearance);
Parámetros
nAppearance
Propiedad DISPID_AMBIENT_APPEARANCE.
Valor devuelto
Uno de los valores HRESULT estándar.
Ejemplo
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, una marca que indica si el contenedor admite el recorte automático del área de visualización del control.
HRESULT GetAmbientAutoClip(BOOL& bAutoClip);
Parámetros
bAutoClip
Propiedad DISPID_AMBIENT_AUTOCLIP.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientBackColor
Recupera DISPID_AMBIENT_BACKCOLOR, el color de fondo ambiente de todos los controles, definido por el contenedor.
HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);
Parámetros
BackColor
Propiedad DISPID_AMBIENT_BACKCOLOR.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientCharSet
Recupera DISPID_AMBIENT_CHARSET, el juego de caracteres ambiente para todos los controles, definido por el contenedor.
HRESULT GetAmbientCharSet(BSTR& bstrCharSet);
Parámetros
bstrCharSet
Propiedad DISPID_AMBIENT_CHARSET.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
CComControlBase::GetAmbientCodePage
Recupera DISPID_AMBIENT_CODEPAGE, la página de códigos ambiente de todos los controles, definidos por el contenedor.
HRESULT GetAmbientCodePage(ULONG& ulCodePage);
Parámetros
ulCodePage
Propiedad DISPID_AMBIENT_CODEPAGE.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
CComControlBase::GetAmbientDisplayAsDefault
Recupera DISPID_AMBIENT_DISPLAYASDEFAULT, una marca que es TRUE si el contenedor ha marcado el control en este sitio para que sea un botón predeterminado y, por tanto, un control de botón debe dibujarse con un marco más grueso.
HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);
Parámetros
bDisplayAsDefault
Propiedad DISPID_AMBIENT_DISPLAYASDEFAULT.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientDisplayName
Recupera DISPID_AMBIENT_DISPLAYNAME, el nombre que el contenedor ha proporcionado al control.
HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);
Parámetros
bstrDisplayName
Propiedad DISPID_AMBIENT_DISPLAYNAME.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientFont
Recupera un puntero a la interfaz IFont
de ambiente del contenedor.
HRESULT GetAmbientFont(IFont** ppFont);
Parámetros
ppFont
Puntero a la interfaz IFont de ambiente del contenedor.
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
Si la propiedad es NULL, el puntero es NULL. Si el puntero no es NULL, el autor de la llamada debe liberar el puntero.
CComControlBase::GetAmbientFontDisp
Recupera un puntero a la interfaz de distribución IFontDisp
de ambiente del contenedor.
HRESULT GetAmbientFontDisp(IFontDisp** ppFont);
Parámetros
ppFont
Puntero a la interfaz de distribución IFontDisp de ambiente del contenedor.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Si la propiedad es NULL, el puntero es NULL. Si el puntero no es NULL, el autor de la llamada debe liberar el puntero.
CComControlBase::GetAmbientForeColor
Recupera DISPID_AMBIENT_FORECOLOR, el color de primer plano ambiente para todos los controles, definido por el contenedor.
HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);
Parámetros
ForeColor
Propiedad DISPID_AMBIENT_FORECOLOR.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientLocaleID
Recupera DISPID_AMBIENT_LOCALEID, el identificador del lenguaje usado por el contenedor.
HRESULT GetAmbientLocaleID(LCID& lcid);
Parámetros
lcid
Propiedad DISPID_AMBIENT_LOCALEID.
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
El control puede usar este identificador para adaptar su interfaz de usuario a diferentes idiomas.
CComControlBase::GetAmbientMessageReflect
Recupera DISPID_AMBIENT_MESSAGEREFLECT, una marca que indica si el contenedor quiere recibir mensajes de ventana (por ejemplo, WM_DRAWITEM
) como eventos.
HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);
Parámetros
bMessageReflect
Propiedad DISPID_AMBIENT_MESSAGEREFLECT.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientPalette
Recupera DISPID_AMBIENT_PALETTE, que se usa para acceder al HPALETTE del contenedor.
HRESULT GetAmbientPalette(HPALETTE& hPalette);
Parámetros
hPalette
Propiedad DISPID_AMBIENT_PALETTE.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientProperty
Recupera la propiedad de contenedor especificada por dispid.
HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);
Parámetros
dispid
Identificador de la propiedad contenedor que se va a recuperar.
var
Variable para recibir la propiedad.
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
ATL ha proporcionado un conjunto de funciones auxiliares para recuperar propiedades específicas, por ejemplo, CComControlBase::GetAmbientBackColor. Si no hay ningún método adecuado disponible, use GetAmbientProperty
.
CComControlBase::GetAmbientRightToLeft
Recupera DISPID_AMBIENT_RIGHTTOLEFT, la dirección en la que el contenedor muestra el contenido.
HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);
Parámetros
bRightToLeft
Propiedad DISPID_AMBIENT_RIGHTTOLEFT. Se establece en TRUE si el contenido se muestra de derecha a izquierda, FALSE si se muestra de izquierda a derecha.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
CComControlBase::GetAmbientScaleUnits
Recupera DISPID_AMBIENT_SCALEUNITS, las unidades ambientales del contenedor (como pulgadas o centímetros) para las pantallas de etiquetado.
HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);
Parámetros
bstrScaleUnits
Propiedad DISPID_AMBIENT_SCALEUNITS.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientShowGrabHandles
Recupera DISPID_AMBIENT_SHOWGRABHANDLES, una marca que indica si el contenedor permite que el control muestre manipuladores de agarre para sí mismo cuando está activo.
HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);
Parámetros
bShowGrabHandles
Propiedad DISPID_AMBIENT_SHOWGRABHANDLES.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientShowHatching
Recupera DISPID_AMBIENT_SHOWHATCHING, una marca que indica si el contenedor permite al control mostrarse con un patrón sombreado cuando la interfaz de usuario del control está activa.
HRESULT GetAmbientShowHatching(BOOL& bShowHatching);
Parámetros
bShowHatching
Propiedad DISPID_AMBIENT_SHOWHATCHING.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientSupportsMnemonics
Recupera DISPID_AMBIENT_SUPPORTSMNEMONICS, una marca que indica si el contenedor admite teclas de acceso de teclado.
HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);
Parámetros
bSupportsMnemonics
Propiedad DISPID_AMBIENT_SUPPORTSMNEMONICS.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientTextAlign
Recupera DISPID_AMBIENT_TEXTALIGN, la alineación de texto preferida por el contenedor: 0 para la alineación general (números a la derecha, texto a la izquierda), 1 para la alineación izquierda, 2 para la alineación central y 3 para la alineación derecha.
HRESULT GetAmbientTextAlign(short& nTextAlign);
Parámetros
nTextAlign
Propiedad DISPID_AMBIENT_TEXTALIGN.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetAmbientTopToBottom
Recupera DISPID_AMBIENT_TOPTOBOTTOM, la dirección en la que el contenedor muestra el contenido.
HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);
Parámetros
bTopToBottom
Propiedad DISPID_AMBIENT_TOPTOBOTTOM. Se establece en TRUE si el texto se muestra de arriba a abajo, FALSE si se muestra de abajo a arriba.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
CComControlBase::GetAmbientUIDead
Recupera DISPID_AMBIENT_UIDEAD, una marca que indica si el contenedor quiere que el control responda a las acciones de la interfaz de usuario.
HRESULT GetAmbientUIDead(BOOL& bUIDead);
Parámetros
bUIDead
Propiedad DISPID_AMBIENT_UIDEAD.
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
Si es TRUE, el control no debe responder. Esta marca se aplica independientemente de la marca DISPID_AMBIENT_USERMODE. Consulte CComControlBase::GetAmbientUserMode.
CComControlBase::GetAmbientUserMode
Recupera DISPID_AMBIENT_USERMODE, una marca que indica si el contenedor está en modo de ejecución (TRUE) o en modo de diseño (FALSE).
HRESULT GetAmbientUserMode(BOOL& bUserMode);
Parámetros
bUserMode
Propiedad DISPID_AMBIENT_USERMODE.
Valor devuelto
Uno de los valores HRESULT estándar.
CComControlBase::GetDirty
Devuelve el valor de un miembro de datos m_bRequiresSave
.
BOOL GetDirty();
Valor devuelto
Devuelve el valor de miembro de datos m_bRequiresSave.
Comentarios
Este valor se establece mediante CComControlBase::SetDirty.
CComControlBase::GetZoomInfo
Recupera los valores x e y del numerador y el denominador del factor de zoom para un control activado para la edición en contexto.
void GetZoomInfo(ATL_DRAWINFO& di);
Parámetros
di
Estructura que contendrá el numerador y el denominador del factor de zoom. Para más información, consulte ATL_DRAWINFO.
Comentarios
El factor de zoom es la proporción del tamaño natural del control hasta su extensión actual.
CComControlBase::InPlaceActivate
Hace que el control pase de inactivo a cualquier estado que indique el verbo en iVerb.
HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);
Parámetros
iVerb
Valor que indica la acción que va a realizar IOleObjectImpl::DoVerb.
prcPosRect
Puntero a la posición del control en contexto.
Valor devuelto
Uno de los valores HRESULT estándar.
Comentarios
Antes de la activación, este método comprueba que el control tiene un sitio cliente y la cantidad de control visible, y obtiene la ubicación del control en la ventana primaria. Una vez activado el control, este método activa la interfaz de usuario del control e indica al contenedor que haga visible el control.
Este método también recupera un puntero de interfaz IOleInPlaceSite
, IOleInPlaceSiteEx
o IOleInPlaceSiteWindowless
para el control y lo almacena en el miembro de datos de la clase de control CComControlBase::m_spInPlaceSite. Los miembros de datos de clase de control CComControlBase::m_bInPlaceSiteEx, CComControlBase::m_bWndLess, CComControlBase::m_bWasOnceWindowless y CComControlBase::m_bNegotiatedWnd se establecen en true según corresponda.
CComControlBase::InternalGetSite
Llame a este método para consultar el sitio de control de un puntero a la interfaz identificada.
HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);
Parámetros
riid
El IID del puntero de interfaz que se debe devolver en ppUnkSite.
ppUnkSite
Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Si el sitio admite la interfaz solicitada en riid, el puntero se devuelve mediante ppUnkSite. En caso contrario, ppUnkSite se establece como NULL.
CComControlBase::m_bAutoSize
Marca que indica que el control no puede tener otro tamaño.
unsigned m_bAutoSize:1;
Comentarios
Esta marca se comprueba mediante IOleObjectImpl::SetExtent
y, si es TRUE, hace que la función devuelva E_FAIL.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
Si agrega la opción Redimensionar automáticamente en la pestaña Propiedades estándar del Asistente para controles ATL, el asistente crea de forma automática este miembro de datos en la clase de control, crea métodos put y get para la propiedad y admite IPropertyNotifySink para notificar al contenedor automáticamente cuando cambie la propiedad.
CComControlBase::m_bDrawFromNatural
Marca que indica que IDataObjectImpl::GetData
y CComControlBase::GetZoomInfo
deben establecer el tamaño del control desde m_sizeNatural
en lugar de desde m_sizeExtent
.
unsigned m_bDrawFromNatural:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bDrawGetDataInHimetric
Marca que indica que IDataObjectImpl::GetData
debe usar unidades HIMETRIC y no píxeles al dibujar.
unsigned m_bDrawGetDataInHimetric:1;
Comentarios
Cada unidad lógica HIMETRIC es de 0,01 milímetros.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bInPlaceActive
Marca que indica que el control está activo en contexto.
unsigned m_bInPlaceActive:1;
Comentarios
Esto significa que el control es visible y su ventana, si existe, es visible, pero es posible que sus menús y barras de herramientas no estén activos. La marca m_bUIActive
indica que la interfaz de usuario del control (por ejemplo, los menús) también está activa.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bInPlaceSiteEx
Marca que indica que el contenedor admite las características de control de interfaz IOleInPlaceSiteEx
y OCX96, como controles sin ventanas y sin parpadeo.
unsigned m_bInPlaceSiteEx:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
El miembro de datos m_spInPlaceSite
apunta a una interfaz IOleInPlaceSite, IOleInPlaceSiteEx o IOleInPlaceSiteWindowless, según el valor de las marcas m_bWndLess
y m_bInPlaceSiteEx
. (El miembro de datos m_bNegotiatedWnd
debe ser TRUE para que el puntero m_spInPlaceSite
sea válido).
Si m_bWndLess
es FALSE y m_bInPlaceSiteEx
es TRUE, m_spInPlaceSite
es un puntero de interfaz IOleInPlaceSiteEx
. Consulte m_spInPlaceSite para ver una tabla en la que se muestra la relación entre estos tres miembros de datos.
CComControlBase::m_bNegotiatedWnd
Marca que indica si el control ha negociado o no con el contenedor sobre la compatibilidad con las características de control OCX96 (como controles sin parpadeo y sin ventanas) y si el control tiene ventanas o no.
unsigned m_bNegotiatedWnd:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
La marca m_bNegotiatedWnd
debe ser TRUE para que el puntero m_spInPlaceSite
sea válido.
CComControlBase::m_bRecomposeOnResize
Marca que indica que el control quiere recomponer su presentación cuando el contenedor cambia el tamaño de presentación del control.
unsigned m_bRecomposeOnResize:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
IOleObjectImpl::SetExtent comprueba esta marca y, si es TRUE, SetExtent
notifica los cambios en el contenedor de la vista. Si esta marca se establece, también se debe establecer el bit OLEMISC_RECOMPOSEONRESIZE en la enumeración OLEMISC.
CComControlBase::m_bRequiresSave
Marca que indica que el control ha cambiado desde que la última vez que se guardó.
unsigned m_bRequiresSave:1;
Comentarios
El valor de m_bRequiresSave
se puede establecer con CComControlBase::SetDirty y recuperarse con CComControlBase::GetDirty.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bResizeNatural
Marca que indica que el control quiere cambiar el tamaño de su extensión natural (su tamaño físico sin escala) cuando el contenedor cambia el tamaño de la pantalla del control.
unsigned m_bResizeNatural:1;
Comentarios
Esta marca se comprueba mediante IOleObjectImpl::SetExtent
y, si es TRUE, el tamaño pasado a SetExtent
se asigna a m_sizeNatural
.
El tamaño pasado a SetExtent
siempre se asigna a m_sizeExtent
, independientemente del valor de m_bResizeNatural
.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bUIActive
Marca que indica que la interfaz de usuario del control, como menús y barras de herramientas, está activa.
unsigned m_bUIActive:1;
Comentarios
La marca m_bInPlaceActive
indica que el control está activo, pero no que su interfaz de usuario lo esté.
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bUsingWindowRgn
Marca que indica que el control usa la región de ventana proporcionada por el contenedor.
unsigned m_bUsingWindowRgn:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bWasOnceWindowless
Marca que indica que el control no tiene ventanas, pero puede o no estar sin ventanas ahora.
unsigned m_bWasOnceWindowless:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bWindowOnly
Marca que indica que el control debe tener ventanas, incluso si el contenedor admite controles sin ventanas.
unsigned m_bWindowOnly:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_bWndLess
Marca que indica que el control no tiene ventana.
unsigned m_bWndLess:1;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
El miembro de datos m_spInPlaceSite
apunta a una interfaz IOleInPlaceSite, IOleInPlaceSiteEx o IOleInPlaceSiteWindowless, según el valor de las marcas m_bWndLess
y CComControlBase::m_bInPlaceSiteEx. (El miembro de datos CComControlBase::m_bNegotiatedWnd debe ser TRUE para que el puntero CComControlBase::m_spInPlaceSite sea válido).
Si m_bWndLess
es TRUE, m_spInPlaceSite
es un puntero de interfaz IOleInPlaceSiteWindowless
. Consulte CComControlBase::m_spInPlaceSite para ver una tabla que muestra la relación completa entre estos miembros de datos.
CComControlBase::m_hWndCD
Contiene una referencia al manipulador de ventana asociado al control.
HWND& m_hWndCD;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_nFreezeEvents
Recuento del número de veces que el contenedor tiene eventos inmovilizados (rechaza aceptar eventos) sin que intervenga la reanudación de eventos (aceptación de eventos).
short m_nFreezeEvents;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_rcPos
Posición en píxeles del control, expresada en las coordenadas del contenedor.
RECT m_rcPos;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_sizeExtent
La extensión del control en unidades HIMETRIC (cada unidad es de 0,01 milímetros) para una pantalla determinada.
SIZE m_sizeExtent;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
Este tamaño se escala mediante la pantalla. El tamaño físico del control se especifica en el miembro de datos m_sizeNatural
y se fija.
Puede convertir el tamaño en píxeles con la función global AtlHiMetricToPixel.
CComControlBase::m_sizeNatural
El tamaño físico del control en unidades HIMETRIC (cada unidad es de 0,01 milímetros).
SIZE m_sizeNatural;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
Este tamaño es fijo, mientras que el tamaño en m_sizeExtent
lo escala la pantalla.
Puede convertir el tamaño en píxeles con la función global AtlHiMetricToPixel.
CComControlBase::m_spAdviseSink
Puntero directo a la conexión de asesoramiento en el contenedor (IAdviseSink del contenedor).
CComPtr<IAdviseSink>
m_spAdviseSink;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_spAmbientDispatch
Objeto CComDispatchDriver
que permite recuperar y establecer las propiedades de un objeto mediante un puntero IDispatch
.
CComDispatchDriver m_spAmbientDispatch;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_spClientSite
Puntero al sitio cliente del control dentro del contenedor.
CComPtr<IOleClientSite>
m_spClientSite;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
CComControlBase::m_spDataAdviseHolder
Proporciona un medio estándar para mantener conexiones de asesoramiento entre objetos de datos y receptores de avisos.
CComPtr<IDataAdviseHolder>
m_spDataAdviseHolder;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
Un objeto de datos es un control que puede transferir datos y que implementa IDataObject, cuyos métodos especifican el formato y el medio de transferencia de los datos.
La interfaz m_spDataAdviseHolder
implementa los métodos IDataObject::DAdvise e IDataObject::DUnadvise para establecer y eliminar conexiones de asesoramiento al contenedor. El contenedor del control debe implementar un receptor de aviso al admitir la interfaz IAdviseSink.
CComControlBase::m_spInPlaceSite
Puntero al puntero de interfaz del contenedor IOleInPlaceSite, IOleInPlaceSiteEx o IOleInPlaceSiteWindowless.
CComPtr<IOleInPlaceSiteWindowless>
m_spInPlaceSite;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
El puntero m_spInPlaceSite
solo es válido si la marca m_bNegotiatedWnd es TRUE.
En la tabla siguiente se muestra cómo el tipo de puntero m_spInPlaceSite
depende de las marcas de miembro de datos m_bWndLess y m_bInPlaceSiteEx:
Tipo m_spInPlaceSite | Valor m_bWndLess | Valor m_bInPlaceSiteEx |
---|---|---|
IOleInPlaceSiteWindowless |
VERDADERO | TRUE o FALSE |
IOleInPlaceSiteEx |
FALSO | true |
IOleInPlaceSite |
false | FALSO |
CComControlBase::m_spOleAdviseHolder
Proporciona una implementación estándar de una manera de contener conexiones de asesoramiento.
CComPtr<IOleAdviseHolder>
m_spOleAdviseHolder;
Comentarios
Nota:
Para usar este miembro de datos dentro de la clase de control, debe declararlo como miembro de datos en la clase de control. La clase de control no heredará este miembro de datos de la clase base porque se declara dentro de una unión en la clase base.
La interfaz m_spOleAdviseHolder
implementa los métodos IOleObject::Advise e IOleObject::Unadvise para establecer y eliminar conexiones de asesoramiento al contenedor. El contenedor del control debe implementar un receptor de aviso al admitir la interfaz IAdviseSink.
CComControlBase::OnDraw
Invalide este método para dibujar el control.
virtual HRESULT OnDraw(ATL_DRAWINFO& di);
Parámetros
di
Referencia a la estructura ATL_DRAWINFO que contiene información de dibujo, como el aspecto de dibujo, los límites del control y si el dibujo está optimizado o no.
Valor devuelto
Valor HRESULT estándar.
Comentarios
El valor predeterminado OnDraw
elimina o restaura el contexto del dispositivo o no hace nada, según las marcas establecidas en CComControlBase::OnDrawAdvanced.
Un método OnDraw
se agrega automáticamente a la clase de control al crearse el control con el asistente de controles ATL. El valor predeterminado OnDraw
del asistente traza un rectángulo con la etiqueta "ATL 8.0".
Ejemplo
Consulte el ejemplo de CComControlBase::GetAmbientAppearance.
CComControlBase::OnDrawAdvanced
El valor predeterminado OnDrawAdvanced
prepara un contexto de dispositivo normalizado para dibujar y, después, llama al método OnDraw
de la clase de control.
virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
Parámetros
di
Referencia a la estructura ATL_DRAWINFO que contiene información de dibujo, como el aspecto de dibujo, los límites del control y si el dibujo está optimizado o no.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Invalide este método si desea aceptar el contexto del dispositivo pasado por el contenedor sin normalizarlo.
Consulte CComControlBase::OnDraw para obtener más detalles.
CComControlBase::OnKillFocus
Comprueba que el control está activo en contexto y tiene un sitio de control válido y, después, informa al contenedor de que el control ha perdido el foco.
LRESULT OnKillFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parámetros
nMsg
Reservado.
wParam
Reservado.
lParam
Reservado.
bHandled
Marca que indica si el mensaje de la ventana se ha controlado correctamente. El valor predeterminado es FALSE.
Valor devuelto
Siempre devuelve 1.
CComControlBase::OnMouseActivate
Comprueba que la interfaz de usuario está en modo de usuario y, después, activa el control.
LRESULT OnMouseActivate(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parámetros
nMsg
Reservado.
wParam
Reservado.
lParam
Reservado.
bHandled
Marca que indica si el mensaje de la ventana se ha controlado correctamente. El valor predeterminado es FALSE.
Valor devuelto
Siempre devuelve 1.
CComControlBase::OnPaint
Prepara el contenedor para pintar, obtiene el área cliente del control y, después, llama al método OnDrawAdvanced
de la clase de control.
LRESULT OnPaint(UINT /* nMsg */,
WPARAM wParam,
LPARAM /* lParam */,
BOOL& /* lResult */);
Parámetros
nMsg
Reservado.
wParam
HDC existente.
lParam
Reservado.
lResult
Reservado.
Valor devuelto
Siempre devuelve cero.
Comentarios
Si wParam no es NULL, OnPaint
supone que contiene un HDC válido y lo usa en lugar de CComControlBase::m_hWndCD.
CComControlBase::OnSetFocus
Comprueba que el control está activo en contexto y tiene un sitio de control válido y, después, informa al contenedor del que el control ha obtenido el foco.
LRESULT OnSetFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parámetros
nMsg
Reservado.
wParam
Reservado.
lParam
Reservado.
bHandled
Marca que indica si el mensaje de la ventana se ha controlado correctamente. El valor predeterminado es FALSE.
Valor devuelto
Siempre devuelve 1.
Comentarios
Envía una notificación al contenedor de que el control ha recibido el foco.
CComControlBase::PreTranslateAccelerator
Invalide este método para proporcionar sus propios controladores de acelerador de teclado.
BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
HRESULT& /* hRet */);
Parámetros
PMSG
Reservado.
hRet
Reservado.
Valor devuelto
Devuelve FALSE de forma predeterminada.
CComControlBase::SendOnClose
Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que se ha cerrado el control.
HRESULT SendOnClose();
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Envía una notificación de que el control ha cerrado sus receptores de asesoramiento.
CComControlBase::SendOnDataChange
Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que los datos de control han cambiado.
HRESULT SendOnDataChange(DWORD advf = 0);
Parámetros
advf
Aconseja marcas que especifican cómo se realiza la llamada a IAdviseSink::OnDataChange. Los valores proceden de la enumeración ADVF.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
CComControlBase::SendOnRename
Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que el control tiene un nuevo moniker.
HRESULT SendOnRename(IMoniker* pmk);
Parámetros
pmk
Puntero al nuevo moniker del control.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Envía una notificación de que el moniker del control ha cambiado.
CComControlBase::SendOnSave
Notifica a todos los receptores de asesoramiento registrados con el titular del aviso que se ha guardado el control.
HRESULT SendOnSave();
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
Envía una notificación de que el control acaba de guardar sus datos.
CComControlBase::SendOnViewChange
Notifica a todos los receptores de asesoramiento registrados que la vista del control ha cambiado.
HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);
Parámetros
dwAspect
Aspecto o vista del control.
lindex
Parte de la vista que ha cambiado. Solo -1 es válido.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Comentarios
SendOnViewChange
llama a IAdviseSink::OnViewChange. El único valor de lindex admitido actualmente es -1, lo que indica que toda la vista es de interés.
CComControlBase::SetControlFocus
Establece o quita el foco del teclado hacia o desde el control.
BOOL SetControlFocus(BOOL bGrab);
Parámetros
bGrab
Si es TRUE, establece el foco de teclado para el control que llama. Si es FALSE, quita el foco de teclado del control que llama, siempre que lo tenga.
Valor devuelto
Devuelve TRUE si el control recibe correctamente el foco; de lo contrario, FALSE.
Comentarios
Para un control con ventanas, se llama a la función SetFocus de la API de Windows. Para un control sin ventanas, se llama a IOleInPlaceSiteWindowless::SetFocus. Mediante esta llamada, un control sin ventana obtiene el foco del teclado y puede responder a los mensajes de la ventana.
CComControlBase::SetDirty
Establece el miembro de datos m_bRequiresSave
en el valor de bDirty.
void SetDirty(BOOL bDirty);
Parámetros
bDirty
Valor del miembro de datos CComControlBase::m_bRequiresSave.
Comentarios
Se debe llamar a SetDirty(TRUE)
para marcar que el control ha cambiado desde la última vez que se guardó. El valor de m_bRequiresSave
se recupera con CComControlBase::GetDirty.