Compartir a través de


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 TRUE TRUE o FALSE
IOleInPlaceSiteEx FALSE true
IOleInPlaceSite false FALSE

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.

Consulte también

CComControl (clase)
Información general sobre la clase