Clase CComboBoxEx
Extiende el control de cuadro combinado proporcionando compatibilidad con las listas de imágenes.
Sintaxis
class CComboBoxEx : public CComboBox
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CComboBoxEx::CComboBoxEx | Construye un objeto CComboBoxEx . |
Métodos públicos
Nombre | Descripción |
---|---|
CComboBoxEx::Create | Crea el cuadro de combinado y lo asocia al objeto CComboBoxEx . |
CComboBoxEx::CreateEx | Crea un cuadro combinado con los estilos extendidos de Windows especificados y lo asocia a un objeto ComboBoxEx . |
CComboBoxEx::DeleteItem | Quita un elemento de un control ComboBoxEx . |
CComboBoxEx::GetComboBoxCtrl | Recupera un puntero al control de cuadro combinado secundario. |
CComboBoxEx::GetEditCtrl | Recupera el identificador de la parte del control de edición de un control ComboBoxEx . |
CComboBoxEx::GetExtendedStyle | Recupera los estilos extendidos que están en uso en relación con un control ComboBoxEx . |
CComboBoxEx::GetImageList | Recupera un puntero a la lista de imágenes asignada a un control ComboBoxEx . |
CComboBoxEx::GetItem | Recupera la información de elemento de un elemento ComboBoxEx determinado. |
CComboBoxEx::HasEditChanged | Determina si el usuario ha cambiado el contenido del control de edición ComboBoxEx mediante escritura. |
CComboBoxEx::InsertItem | Inserta un nuevo elemento en un control ComboBoxEx . |
CComboBoxEx::SetExtendedStyle | Establece estilos extendidos dentro de un control ComboBoxEx . |
CComboBoxEx::SetImageList | Establece una lista de imágenes de un control ComboBoxEx . |
CComboBoxEx::SetItem | Establece los atributos de un elemento de un control ComboBoxEx . |
CComboBoxEx::SetWindowTheme | Establece el estilo visual del control de cuadro combinado extendido. |
Comentarios
Si usa CComboBoxEx
para crear controles de cuadro combinado, ya no es necesario que implemente su propio código de dibujo de imágenes. En su lugar, use CComboBoxEx
para acceder a las imágenes de una lista de imágenes.
Compatibilidad con listas de imágenes
En un cuadro combinado estándar, el propietario del cuadro combinado es responsable de dibujar una imagen creando el cuadro combinado como un control de dibujo de propietario. Cuando se usa CComboBoxEx
, no es necesario establecer los estilos de dibujo CBS_OWNERDRAWFIXED y CBS_HASSTRINGS, porque ya están implícitos. De lo contrario, deberá escribir código para realizar operaciones de dibujo. Un control CComboBoxEx
admite hasta tres imágenes por elemento: una para el estado seleccionado, otra para el estado no seleccionado y otra como imagen de superposición.
Estilos
CComboBoxEx
admite los estilos CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST y WS_CHILD. Este control omite todos los demás estilos pasados al crear la ventana. Una vez creada la ventana, se pueden proporcionar otros estilos de cuadro combinado llamando a la función miembro de CComboBoxEx
SetExtendedStyle. Con estos estilos se puede hacer lo siguiente:
Configurar las búsquedas de cadenas en la lista de forma que distingan mayúsculas de minúsculas.
Crear un control de cuadro combinado que use los caracteres de barra diagonal ('/'), barra diagonal inversa ('\') y punto ('.') como delimitadores de palabras. Esto permite a los usuarios saltar de palabra en palabra usando el método abreviado de teclado CTRL+FLECHA.
Configurar el control de cuadro combinado de forma que muestre o no una imagen. Si no se muestra ninguna imagen, el cuadro combinado puede quitar la sangría de texto que da cabida a una imagen.
Crear un control de cuadro combinado estrecho, incluido ajustar su tamaño para recortar el cuadro combinado más amplio que contiene.
Estas marcas de estilo se describen más adelante en Uso de CComboBoxEx.
Atributos de elemento devolución de llamada y retención de elemento
La información de elementos, como los índices de los elementos y las imágenes, los valores de sangría y las cadenas de texto, se almacena en la estructura WIN32 COMBOBOXEXITEM, como se describe en Windows SDK. La estructura también contiene miembros que corresponden a marcas de devolución de llamada.
Para obtener una explicación detallada de los conceptos, vea Uso de CComboBoxEx.
Jerarquía de herencia
CComboBoxEx
Requisitos
Encabezado: afxcmn.h
CComboBoxEx::CComboBoxEx
Llame a esta función miembro para crear un objeto CComboBoxEx
.
CComboBoxEx();
CComboBoxEx::Create
Crea el cuadro de combinado y lo asocia al objeto CComboBoxEx
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwStyle
Especifica la combinación de estilos de cuadro combinado aplicada al cuadro combinado. Vea Comentarios para obtener más información sobre los estilos.
rect
Referencia a un objeto CRect o a una estructura RECT, que es la posición y el tamaño del cuadro combinado.
pParentWnd
Puntero a un objeto CWnd que es la ventana primaria del cuadro combinado (normalmente, CDialog
). No debe ser NULL.
Nid
Especifica el identificador de control del cuadro combinado.
Valor devuelto
El valor devuelto será distinto de cero si el objeto se crea correctamente; en caso contrario, será 0.
Comentarios
Un objeto CComboBoxEx
se crea en dos pasos:
Llame a CComboBoxEx para construir un objeto
CComboBoxEx
.Llame a esta función miembro, que crea el cuadro combinado extendido de Windows y lo asocia al objeto
CComboBoxEx
.
Al llamar a Create
, MFC inicializa los controles comunes.
Al crear el cuadro combinado, puede especificar cualquiera o todos los siguientes estilos de cuadro combinado:
CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
CBS_AUTOHSCROLL
WS_CHILD
Se omiten todos los demás estilos pasados al crear la ventana. El control ComboBoxEx
también admite estilos extendidos que proporcionan características adicionales. Estos estilos se describen en Estilos extendidos del control ComboBoxEx, en Windows SDK. Configure estos estilos llamando a SetExtendedStyle.
Si quiere usar estilos extendidos de Windows con el control, llame a CreateEx en lugar de a Create
.
CComboBoxEx::CreateEx
Llame a esta función para crear un control de cuadro combinado extendido (una ventana secundaria) y asociarlo al objeto CComboBoxEx
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para ver una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle para CreateWindowEx en Windows SDK.
dwStyle
Estilo del control de cuadro combinado. Vea Create para obtener una lista de estilos extendidos.
rect
Referencia a una estructura RECT que describe el tamaño y la posición de la ventana que se va a crear, en coordenadas de cliente de pParentWnd.
pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.
Nid
El identificador de ventana secundaria del control.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Usa la función CreateEx
, en lugar de Create
para aplicar estilos extendidos de Windows. Estos se especifican en el prefacio de estilo extendido de Windows WS_EX_.
CreateEx
crea el control con los estilos de extendidos de Windows especificados por dwExStyle. Los estilos extendidos específicos de un control de cuadro combinado extendido se deben configurar mediante SetExtendedStyle. Por ejemplo, use CreateEx
para configurar estilos como WS_EX_CONTEXTHELP, pero use SetExtendedStyle
para hacer lo propio con estilos como CBES_EX_CASESENSITIVE. Para obtener más información, vea los estilos descritos en el tema Estilos extendidos del control ComboBoxEx en Windows SDK.
CComboBoxEx::DeleteItem
Quita un elemento de un control ComboBoxEx
.
int DeleteItem(int iIndex);
Parámetros
iIndex
Índice de base cero del elemento que se va a quitar.
Valor devuelto
Número de elementos que quedan en el control. Si iIndex no es válido, la función devuelve CB_ERR.
Comentarios
Esta función miembro implementa la funcionalidad del mensaje CBEM_DELETEITEM, como se describe en Windows SDK. Al llamar a DeleteItem, se enviará a la ventana primaria un mensaje WM_NOTIFY con la notificación CBEN_DELETEITEM.
CComboBoxEx::GetComboBoxCtrl
Llame a esta función miembro para obtener un puntero a un control de cuadro combinado dentro de un objeto CComboBoxEx
.
CComboBox* GetComboBoxCtrl();
Valor devuelto
Puntero a un objeto CComboBox
.
Comentarios
El control CComboBoxEx
consta de una ventana primaria, que encapsula un objeto CComboBox
.
El objeto CComboBox
al que apunta el valor devuelto es un objeto temporal y se destruye durante el siguiente tiempo de procesamiento inactivo.
CComboBoxEx::GetEditCtrl
Llame a esta función miembro para obtener un puntero al control de edición de un cuadro combinado.
CEdit* GetEditCtrl();
Valor devuelto
Puntero a un objeto CEdit.
Comentarios
Un control CComboBoxEx
usa un cuadro de edición cuando se crea con el estilo CBS_DROPDOWN.
El objeto CEdit
al que apunta el valor devuelto es un objeto temporal y se destruye durante el siguiente tiempo de procesamiento inactivo.
CComboBoxEx::GetExtendedStyle
Llame a esta función miembro para obtener los estilos extendidos usados con un control CComboBoxEx
.
DWORD GetExtendedStyle() const;
Valor devuelto
Valor DWORD que contiene los estilos extendidos que se usan con el control de cuadro combinado.
Comentarios
Vea Estilos extendidos del control ComboBoxEx en Windows SDK para obtener más información sobre estos estilos.
CComboBoxEx::GetImageList
Llame a esta función miembro para obtener un puntero a la lista de imágenes usada por un control CComboBoxEx
.
CImageList* GetImageList() const;
Valor devuelto
Puntero a un objeto CImageList. Si se produce un error, esta función miembro devuelve NULL.
Comentarios
El objeto CImageList
al que apunta el valor devuelto es un objeto temporal y se destruye durante el siguiente tiempo de procesamiento inactivo.
CComboBoxEx::GetItem
Recupera la información de elemento de un elemento ComboBoxEx
determinado.
BOOL GetItem(COMBOBOXEXITEM* pCBItem);
Parámetros
pCBItem
Puntero a una estructura COMBOBOXEXITEM que recibirá la información del elemento.
Valor devuelto
Distinto de cero si la operación es correcta; de lo contrario, 0.
Comentarios
Esta función miembro implementa la funcionalidad del mensaje CBEM_GETITEM, como se describe en Windows SDK.
CComboBoxEx::HasEditChanged
Determina si el usuario ha cambiado el contenido del control de edición ComboBoxEx
mediante escritura.
BOOL HasEditChanged();
Valor devuelto
Distinto de cero si el usuario ha escrito en el cuadro de edición del control; de lo contrario, 0.
Comentarios
Esta función miembro implementa la funcionalidad del mensaje CBEM_HASEDITCHANGED, como se describe en Windows SDK.
CComboBoxEx::InsertItem
Inserta un nuevo elemento en un control ComboBoxEx
.
int InsertItem(const COMBOBOXEXITEM* pCBItem);
Parámetros
pCBItem
Puntero a una estructura COMBOBOXEXITEM que recibirá la información del elemento. Esta estructura contiene valores de marca de devolución de llamada del elemento.
Valor devuelto
Índice en el que se insertó el nuevo elemento si es correcto; de lo contrario, -1.
Comentarios
Al llamar a InsertItem
, a WM_NOTIFY, se enviará a la ventana primaria un mensaje con la notificación CBEN_INSERTITEM.
CComboBoxEx::SetExtendedStyle
Llame a esta función miembro para configurar los estilos extendidos usados en un control extendido de cuadro combinado.
DWORD SetExtendedStyle(
DWORD dwExMask,
DWORD dwExStyles);
Parámetros
dwExMask
Valor DWORD que indica qué estilos de dwExStyles se verán afectados. Solo se cambiarán los estilos extendidos de dwExMask. Todos los demás estilos se mantendrán tal y como están. Si este parámetro es cero, todos los estilos de dwExStyles se verán afectados.
dwExStyles
Valor DWORD que contiene los estilos extendidos del control de cuadro combinado se van a configurar para el control.
Valor devuelto
Valor DWORD que contiene los estilos extendidos usados anteriormente para el control.
Comentarios
Vea Estilos extendidos del control ComboBoxEx en Windows SDK para obtener más información sobre estos estilos.
Para crear un control extendido de cuadro combinado con estilos de ventana extendidos, use CreateEx.
CComboBoxEx::SetImageList
Establece una lista de imágenes de un control ComboBoxEx
.
CImageList* SetImageList(CImageList* pImageList);
Parámetros
pImageList
Puntero a un objeto CImageList
que contiene las imágenes que se van a usar con el control CComboBoxEx
.
Valor devuelto
Puntero a un objeto CImageList que contiene las imágenes usadas anteriormente por el control CComboBoxEx
. NULL si no se estableció ninguna lista de imágenes previamente.
Comentarios
Esta función miembro implementa la funcionalidad del mensaje CBEM_SETIMAGELIST, como se describe en Windows SDK. Si cambia el alto del control de edición predeterminado, llame a la función de Win32 SetWindowPos para cambiar el tamaño del control después de llamar a SetImageList
o, de lo contrario, no se mostrará correctamente.
El objeto CImageList
al que apunta el valor devuelto es un objeto temporal y se destruye durante el siguiente tiempo de procesamiento inactivo.
CComboBoxEx::SetItem
Establece los atributos de un elemento de un control ComboBoxEx
.
BOOL SetItem(const COMBOBOXEXITEM* pCBItem);
Parámetros
pCBItem
Puntero a una estructura COMBOBOXEXITEM que recibirá la información del elemento.
Valor devuelto
Distinto de cero si la operación es correcta; de lo contrario, 0.
Comentarios
Esta función miembro implementa la funcionalidad del mensaje CBEM_SETITEM, como se describe en Windows SDK.
CComboBoxEx::SetWindowTheme
Establece el estilo visual del control de cuadro combinado extendido.
HRESULT SetWindowTheme(LPCWSTR pszSubAppName);
Parámetros
pszSubAppName
Puntero con una cadena Unicode que contiene el estilo visual del cuadro combinado que se va a establecer.
Valor devuelto
En esta función, no se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje CBEM_SETWINDOWTHEME, tal y como se describe en Windows SDK.
Consulte también
Ejemplo MFCIE de MFC
CComboBox (clase)
Gráfico de jerarquías
CComboBox (clase)