Clase COleControlContainer
Actúa como contenedor de control para controles ActiveX.
Sintaxis
class COleControlContainer : public CCmdTarget
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleControlContainer::COleControlContainer | Construye un objeto COleControlContainer . |
Métodos públicos
Nombre | Descripción |
---|---|
COleControlContainer::AttachControlSite | Crea un sitio de control hospedado por el contenedor. |
COleControlContainer::BroadcastAmbientPropertyChange | Informa a todos los controles hospedados de que ha cambiado una propiedad ambiente. |
COleControlContainer::CheckDlgButton | Modifica el control de botón especificado. |
COleControlContainer::CheckRadioButton | Selecciona el botón de radio especificado de un grupo. |
COleControlContainer::CreateControl | Crea un control ActiveX hospedado. |
COleControlContainer::CreateOleFont | Crea una fuente OLE. |
COleControlContainer::FindItem | Devuelve el sitio personalizado del control especificado. |
COleControlContainer::FreezeAllEvents | Especifica si el sitio de control acepta eventos. |
COleControlContainer::GetAmbientProp | Recupera la propiedad ambiente especificada. |
COleControlContainer::GetDlgItem | Recupera el control de diálogo especificado. |
COleControlContainer::GetDlgItemInt | Recupera el valor del control de diálogo especificado. |
COleControlContainer::GetDlgItemText | Recupera el subtítulo del control de diálogo especificado. |
COleControlContainer::HandleSetFocus | Determina si el contenedor controla WM_SETFOCUS mensajes. |
COleControlContainer::HandleWindowlessMessage | Controla los mensajes enviados a un control sin ventanas. |
COleControlContainer::IsDlgButtonChecked | Determina el estado del botón especificado. |
COleControlContainer::OnPaint | Se llama para volver a dibujar una parte del contenedor. |
COleControlContainer::OnUIActivate | Se llama cuando un control está a punto de activarse en contexto. |
COleControlContainer::OnUIDeactivate | Se llama cuando un control se va a desactivar. |
COleControlContainer::ScrollChildren | Lo llama el marco cuando se reciben mensajes de desplazamiento desde una ventana secundaria. |
COleControlContainer::SendDlgItemMessage | Envía un mensaje al control especificado. |
COleControlContainer::SetDlgItemInt | Establece el valor del control especificado. |
COleControlContainer::SetDlgItemText | Establece el texto del control especificado. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
COleControlContainer::m_crBack | Color de fondo del contenedor. |
COleControlContainer::m_crFore | Color de primer plano del contenedor. |
COleControlContainer::m_listSitesOrWnds | Una lista de los sitios de control admitidos. |
COleControlContainer::m_nWindowlessControls | Número de controles sin ventana hospedados. |
COleControlContainer::m_pOleFont | Un puntero a la fuente OLE del sitio de control personalizado. |
COleControlContainer::m_pSiteCapture | Un puntero al sitio de control de captura. |
COleControlContainer::m_pSiteFocus | Puntero al control que actualmente tiene el foco de entrada. |
COleControlContainer::m_pSiteUIActive | Puntero al control que está activado actualmente en contexto. |
COleControlContainer::m_pWnd | Puntero a la ventana que implementa el contenedor de controles. |
COleControlContainer::m_siteMap | Mapa del sitio. |
Comentarios
Esto se hace proporcionando compatibilidad con uno o varios sitios de control ActiveX (implementados por COleControlSite
). COleControlContainer
implementa completamente las interfaces IOleInPlaceFrame e IOleContainer, lo que permite que los controles ActiveX contenidos cumplan sus calificaciones como elementos en contexto.
Normalmente, esta clase se usa junto con COccManager
y COleControlSite
para implementar un contenedor de controles ActiveX personalizado, con sitios personalizados para uno o varios controles ActiveX.
Jerarquía de herencia
COleControlContainer
Requisitos
Encabezado: afxocc.h
COleControlContainer::AttachControlSite
Lo llama el marco para crear y adjuntar un sitio de control.
virtual void AttachControlSite(
CWnd* pWnd,
UINT nIDC = 0);
void AttachControlSite(
CWnd* pWnd,
UINT nIDC = 0);
Parámetros
pWnd
Puntero a un objeto CWnd
.
nIDC
Identificador del control que se va a adjuntar.
Comentarios
Invalida esta función si deseas personalizar este proceso.
Nota:
Usa la primera forma de esta función si está vinculando estáticamente a la biblioteca MFC. Usa el segundo formulario si está vinculando dinámicamente a la biblioteca MFC.
COleControlContainer::BroadcastAmbientPropertyChange
Informa a todos los controles hospedados de que ha cambiado una propiedad ambiente.
virtual void BroadcastAmbientPropertyChange(DISPID dispid);
Parámetros
dispid
Identificador de envío de la propiedad ambiente que se va a cambiar.
Comentarios
El marco llama a esta función cuando una propiedad de ambiente ha cambiado de valor. Invalida esta función para personalizar este comportamiento.
COleControlContainer::CheckDlgButton
Modifica el estado actual del botón.
virtual void CheckDlgButton(
int nIDButton,
UINT nCheck);
Parámetros
nIDButton
El identificador del botón que se va a modificar.
nCheck
Especifica el estado del botón. Puede ser uno de los siguientes:
BST_CHECKED Establece el estado del botón que se va a comprobar.
BST_INDETERMINATE Establece el estado del botón en gris, lo que indica un estado indeterminado. Usa este valor solo si el botón tiene el estilo BS_3STATE o BS_AUTO3STATE.
BST_UNCHECKED Establece el estado del botón que se va a borrar.
COleControlContainer::CheckRadioButton
Selecciona un botón de radio especificado en un grupo y borra los botones restantes del grupo.
virtual void CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton);
Parámetros
nIDFirstButton
Especifica el identificador del primer botón de radio del grupo.
nIDLastButton
Especifica el identificador del último botón de radio del grupo.
nIDCheckButton
Especifica el identificador del botón de radio que se va a comprobar.
COleControlContainer::COleControlContainer
Construye un objeto COleControlContainer
.
explicit COleControlContainer(CWnd* pWnd);
Parámetros
pWnd
El valor de este parámetro se corresponde con un puntero que apunta a la ventana primaria del contenedor.
Comentarios
Una vez creado correctamente el objeto, agrega un sitio de control personalizado con una llamada a AttachControlSite
.
COleControlContainer::CreateControl
Crea un control ActiveX hospedado por el objeto COleControlSite
.
BOOL CreateControl(
CWnd* pWndCtrl,
REFCLSID clsid,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
UINT nID,
CFile* pPersist =NULL,
BOOL bStorage =FALSE,
BSTR bstrLicKey =NULL,
COleControlSite** ppNewSite =NULL);
BOOL CreateControl(
CWnd* pWndCtrl,
REFCLSID clsid,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
UINT nID,
CFile* pPersist =NULL,
BOOL bStorage =FALSE,
BSTR bstrLicKey =NULL,
COleControlSite** ppNewSite =NULL);
Parámetros
pWndCtrl
Puntero al objeto de ventana que representa el control.
clsid
El Id. de clase único del control.
lpszWindowName
Un puntero al texto que se mostrará en el control. Establece el valor de la propiedad Subtítulo o Texto del control (si existiera). Si es NULL, la propiedad Subtítulo o Texto del control no cambia.
dwStyle
Estilos de ventanas. Los estilos disponibles aparecen en la sección Comentarios.
rect
Especifica el tamaño y la posición del control. Puede ser un objeto CRect
o una estructura RECT
.
Nid
Especifica el identificador de la ventana secundaria del control.
pPersist
Un puntero a un CFile
que contiene el estado persistente del control. El valor predeterminado es NULL, lo que indica que el control se inicializa sin restaurar su estado desde ningún almacenamiento persistente. Si no es NULL, debe ser un puntero a un objeto derivado de CFile
que contenga los datos persistentes del control en forma de una secuencia o un almacenamiento. Estos datos pueden haberse guardado en una activación anterior del cliente. El CFile
puede contener otros datos, pero debe tener su puntero de lectura y escritura establecido en el primer byte de datos persistentes en el momento de la llamada a CreateControl
.
bStorage
Indica si los datos de pPersist deben interpretarse como IStorage
o datos IStream
. Si los datos de pPersist son un almacenamiento, bStorage debe ser TRUE. Si los datos de pPersist son una secuencia, bStorage debe ser FALSE. El valor predeterminado es FALSE.
bstrLicKey
Datos de clave de licencia opcionales. Estos datos solo son necesarios para crear controles que requieran una clave de licencia en tiempo de ejecución. Si el control admite licencias, debe proporcionar una clave de licencia para que la creación del control se realice correctamente. El valor predeterminado es NULL.
ppNewSite
Puntero al sitio de control existente que hospedará el control que se va a crear. El valor predeterminado es NULL, lo que indica que se creará automáticamente un nuevo sitio de control y se asociará al nuevo control.
ppt
Puntero a una estructura POINT
que contiene la esquina superior izquierda del control. El tamaño del sector viene determinado por el valor psize. Los valores ppt y psize son un método opcional para especificar el tamaño y la posición del control.
psize
Puntero a una estructura SIZE
que contiene el tamaño del control. La esquina superior izquierda viene determinada por el valor de ppt. Los valores ppt y psize son un método opcional para especificar el tamaño y la posición del control.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Solo se admite un subconjunto de las marcas dwStyle de Windows CreateControl
:
WS_VISIBLE Crea una ventana que está visible inicialmente. Obligatorio si desea que el control sea visible inmediatamente, como las ventanas normales.
WS_DISABLED Crea una ventana que está deshabilitada inicialmente. Una ventana deshabilitada no puede recibir la entrada del usuario. Se puede establecer si el control tiene una propiedad Habilitado.
WS_BORDER Crea una ventana con un borde de línea fina. Se puede establecer si el control tiene una propiedad BorderStyle.
WS_GROUP Especifica el primer control de un grupo de controles. El usuario puede cambiar el foco del teclado desde un control del grupo al siguiente mediante las teclas de dirección. Todos los controles definidos con el estilo WS_GROUP después del primer control pertenecen al mismo grupo. El siguiente control con el estilo WS_GROUP finaliza el grupo e inicia el siguiente grupo.
WS_TABSTOP Especifica un control que puede recibir el foco del teclado cuando el usuario presiona la tecla TAB. Al presionar la tecla TAB, se cambia el foco del teclado al siguiente control del estilo WS_TABSTOP.
Use la segunda sobrecarga para crear controles de tamaño predeterminado.
COleControlContainer::CreateOleFont
Crea una fuente OLE.
void CreateOleFont(CFont* pFont);
Parámetros
pFont
Puntero a la fuente que va a usar el contenedor de controles.
COleControlContainer::FindItem
Busca el sitio personalizado que hospeda el elemento especificado.
virtual COleControlSite* FindItem(UINT nID) const;
Parámetros
Nid
Identificador del elemento que se va a encontrar.
Valor devuelto
Puntero al sitio personalizado del elemento especificado.
COleControlContainer::FreezeAllEvents
Determina si el contenedor omitirá los eventos de los sitios de control adjuntos o los aceptará.
void FreezeAllEvents(BOOL bFreeze);
Parámetros
bFreeze
Distinto de cero si se procesarán los eventos; de lo contrario, 0.
Comentarios
Nota:
El control no es necesario para detener la activación de eventos si lo solicita el contenedor de control. Puede continuar activando, pero el contenedor de control omitirá todos los eventos posteriores.
COleControlContainer::GetAmbientProp
Recupera el valor de una propiedad ambiente especificada.
virtual BOOL GetAmbientProp(
COleControlSite* pSite,
DISPID dispid,
VARIANT* pvarResult);
Parámetros
pSite
Puntero a un sitio de control desde el que se recuperará la propiedad ambiente.
dispid
El Id. de distribución de la propiedad de ambiente deseada.
pVarResult
Un puntero al valor de la propiedad de ambiente.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
COleControlContainer::GetDlgItem
Recupera un puntero al control o a la ventana secundaria especificados en un cuadro de diálogo u otra ventana.
virtual CWnd* GetDlgItem(int nID) const;
virtual void GetDlgItem(
int nID,
HWND* phWnd) const;
Parámetros
Nid
Identificador del elemento de diálogo a recuperar.
phWnd
Puntero al identificador del objeto de ventana del elemento de diálogo especificado.
Valor devuelto
Un puntero a la ventana del diálogo del objeto.
COleControlContainer::GetDlgItemInt
Recupera el valor del texto traducido del control especificado.
virtual UINT GetDlgItemInt(
int nID,
BOOL* lpTrans,
BOOL bSigned) const;
Parámetros
Nid
Identificador del control.
lpTrans
Puntero a una variable booleana que recibe un valor de operación correcta o de error (TRUE indica que se ha realizado correctamente, FALSE indica error).
bSigned
Especifica si la función debe examinar el texto de un signo menos al principio y devolver un valor entero con signo si encuentra uno. Si el parámetro bSigned es TRUE, especificando que el valor que se va a recuperar es un valor entero con signo, convierta el valor devuelto en un int
tipo. Para obtener información de error extendida, llame a GetLastError.
Valor devuelto
Si se ejecuta correctamente, la variable a la que apunta lpTrans se establece en TRUE y el valor devuelto es el valor traducido del texto del control.
Si se produce un error en la función, la variable a la que apunta lpTrans se establece en FALSE y el valor devuelto es cero. Ten en cuenta que, dado que cero es un posible valor traducido, un valor devuelto de cero no indica por sí mismo un error.
Si lpTrans es NULL, la función no devuelve información sobre éxito o error.
Comentarios
La función traduce el texto recuperado quitando los espacios adicionales al principio del texto y, a continuación, convirtiendo los dígitos decimales. La función detiene la traducción cuando llega al final del texto o cuando encuentra cualquier carácter no numérico.
Esta función devuelve cero si el valor traducido es mayor que INT_MAX (para números con signo) o UINT_MAX (para números sin signo).
COleControlContainer::GetDlgItemText
Recupera el texto del control especificado.
virtual int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const;
Parámetros
Nid
Identificador del control.
lpStr
[in] Puntero al texto del control.
nMaxCount
Especifica la longitud máxima, en caracteres, de la cadena que se va a copiar en el búfer al que apunta lpStr. Si la longitud de la cadena supera el límite, la cadena se trunca.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto especifica el número de caracteres copiados en el búfer, sin incluir el carácter nulo de terminación.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
COleControlContainer::HandleSetFocus
Determina si el contenedor controla WM_SETFOCUS mensajes.
virtual BOOL HandleSetFocus();
Valor devuelto
Distinto de cero si el contenedor controla WM_SETFOCUS mensajes; de lo contrario, cero.
COleControlContainer::HandleWindowlessMessage
Procesa los mensajes de ventana para los controles sin ventana.
virtual BOOL HandleWindowlessMessage(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* plResult);
Parámetros
message
Identificador del mensaje de ventana, proporcionado por Windows.
wParam
Parámetro del mensaje; proporcionado por Windows. Especifica información adicional específica de los mensajes. El contenido de este parámetro depende del valor del parámetro msg.
lParam
Parámetro del mensaje; proporcionado por Windows. Especifica información adicional específica de los mensajes. El contenido de este parámetro depende del valor del parámetro msg.
plResult
Código de resultado de Windows. Especifica el resultado del procesamiento del mensaje y depende del mensaje enviado.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Invalida esta función para personalizar el control de mensajes de control sin ventanas.
COleControlContainer::IsDlgButtonChecked
Determina el estado del botón especificado.
virtual UINT IsDlgButtonChecked(int nIDButton) const;
Parámetros
nIDButton
Identificador del botón.
Valor devuelto
El valor devuelto de un botón creado con el estilo BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON o BS_3STATE. Puede ser uno de los siguientes:
BST_CHECKED Botón está activado.
BST_INDETERMINATE Button está sombreado, lo que indica un estado indeterminado (solo se aplica si el botón tiene el estilo BS_3STATE o BS_AUTO3STATE).
BST_UNCHECKED Botón está desactivado.
Comentarios
Si el botón es un control de tres estados, la función miembro determina si está atenuado, activado o ninguno de las dos.
COleControlContainer::m_crBack
Color de fondo del contenedor.
COLORREF m_crBack;
COleControlContainer::m_crFore
Color de primer plano del contenedor.
COLORREF m_crFore;
COleControlContainer::m_listSitesOrWnds
Lista de los sitios de control hospedados por el contenedor.
CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;
COleControlContainer::m_nWindowlessControls
Número de controles sin ventana hospedados por el contenedor de controles.
int m_nWindowlessControls;
COleControlContainer::m_pOleFont
Un puntero a la fuente OLE del sitio de control personalizado.
LPFONTDISP m_pOleFont;
COleControlContainer::m_pSiteCapture
Un puntero al sitio de control de captura.
COleControlSite* m_pSiteCapture;
COleControlContainer::m_pSiteFocus
Un puntero al sitio control que actualmente tiene el foco de entrada.
COleControlSite* m_pSiteFocus;
COleControlContainer::m_pSiteUIActive
Un puntero al sitio de control que está activado en contexto.
COleControlSite* m_pSiteUIActive;
COleControlContainer::m_pWnd
Un puntero al objeto de ventana asociado al contenedor.
CWnd* m_pWnd;
COleControlContainer::m_siteMap
Mapa del sitio.
CMapPtrToPtr m_siteMap;
COleControlContainer::OnPaint
Lo llama el marco para controlar WM_PAINT solicitudes.
virtual BOOL OnPaint(CDC* pDC);
Parámetros
pDC
Un puntero al contexto del dispositivo usado por el contenedor.
Valor devuelto
Distinto de cero si se ha controlado el mensaje; de lo contrario, cero.
Comentarios
Invalida esta función para personalizar el proceso de pintura.
COleControlContainer::OnUIActivate
Lo llama el marco cuando el sitio de control, al que apunta pSite, está a punto de activarse en contexto.
virtual void OnUIActivate(COleControlSite* pSite);
Parámetros
pSite
Un puntero al sitio de control que está a punto de activarse en contexto.
Comentarios
La activación local significa que el menú principal del contenedor se reemplaza por un menú compuesto en contexto.
COleControlContainer::OnUIDeactivate
Lo llama el marco cuando el sitio de control, al que apunta pSite, está a punto de desactivarse.
virtual void OnUIDeactivate(COleControlSite* pSite);
Parámetros
pSite
Puntero al sitio de control a punto de desactivarse.
Comentarios
Cuando se recibe esta notificación, el contenedor debe reinstalar su interfaz de usuario y centrarse.
COleControlContainer::ScrollChildren
Lo llama el marco cuando se reciben mensajes de desplazamiento desde una ventana secundaria.
virtual void ScrollChildren(
int dx,
int dy);
Parámetros
dx
Cantidad, en píxeles, de desplazamiento a lo largo del eje X.
dy
Cantidad, en píxeles, de desplazamiento a lo largo del eje Y.
COleControlContainer::SendDlgItemMessage
Envía un mensaje al control especificado.
virtual LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam,
LPARAM lParam);
Parámetros
Nid
Especifica el identificador del control que recibe el mensaje.
message
Especifica el mensaje que se va a enviar.
wParam
Especifica información adicional específica de los mensajes.
lParam
Especifica información adicional específica de los mensajes.
COleControlContainer::SetDlgItemInt
Establece el texto de un control en un cuadro de diálogo en la representación de cadena de un valor entero especificado.
virtual void SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned);
Parámetros
Nid
Identificador del control.
nValue
Valor entero que se va a mostrar.
bSigned
Especifica si el parámetro nValue está firmado o sin firmar. Si este parámetro es TRUE, nValue se firma. Si este parámetro es TRUE y nValue es menor que cero, se coloca un signo menos antes del primer dígito de la cadena. Si este parámetro es FALSE, nValue no tiene signo.
COleControlContainer::SetDlgItemText
Establece el texto del control especificado, utilizando el texto contenido en lpszString.
virtual void SetDlgItemText(
int nID,
LPCTSTR lpszString);
Parámetros
Nid
Identificador del control.
lpszString
[in] Puntero al texto del control.
Consulte también
CCmdTarget (clase)
Gráfico de jerarquías
COleControlSite (clase)
COccManager (clase)