Compartir a través de


Configurar las imágenes para un elemento individual

Los valores de iImage, iSelectedImage, y los miembros de iOverlay de la estructura de COMBOBOXEXITEM determinan los distintos tipos de imágenes utilizadas por el elemento extendido de cuadro combinado. Cada valor es el índice de una imagen en la lista asociada del control. De forma predeterminada, establecen a estos miembros a 0, lo que hace que el control no muestra ninguna imagen para el elemento. Si desea utilizar imágenes para un elemento específico, puede modificar la estructura en consecuencia, ya sea al insertar el elemento del cuadro combinado o modifica un elemento existente del cuadro combinado.

Establecer la Imagen para un nuevo elemento

Si está insertando un nuevo elemento, inicialice iImage, iSelectedImage, y los miembros de la estructura de iOverlay con los valores adecuados y después incrustan el elemento con una llamada a CComboBoxEx::InsertItem.

El ejemplo siguiente inserta un nuevo elemento extendido de cuadro combinado (cbi) en el control extendido de cuadro combinado (m_comboEx), proporcionando índices para las tres estados de imagen:

COMBOBOXEXITEM     cbi = {0};
CString            str;
int                nItem;

cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
    CBEIF_SELECTEDIMAGE | CBEIF_TEXT;

cbi.iItem = 0;
cbi.pszText = _T("Item 0");
cbi.iImage = 0;
cbi.iSelectedImage = 1;
cbi.iOverlay = 2;
cbi.iIndent = (0 & 0x03);   //Set indentation according 
                     //to item position

nItem = m_ComboBoxEx.InsertItem(&cbi);
ASSERT(nItem == 0);

Establecer la Imagen para un elemento existente

Si está modificando un elemento existente, debe ejecutar el miembro de MASK de una estructura de COMBOBOXEXITEM .

Para modificar un elemento existente para utilizar imágenes

  1. Declare una estructura de COMBOBOXEXITEM y el miembro de datos de MASK a valores que está interesado en modificaciones.

  2. Mediante esta estructura, haga una llamada a CComboBoxEx::GetItem.

  3. Modifique MASK, iImage, y los miembros de iSelectedImage de estructura recién devuelta, utilizando los valores adecuados.

  4. Haga una llamada a CComboBoxEx::SetItem, pasando la estructura modificada.

El ejemplo siguiente se muestra este procedimiento cambiando las imágenes seleccionadas y no seleccionadas del tercer elemento extendido de cuadro combinado:

COMBOBOXEXITEM     cbi = {0};
int                iImageTemp;

cbi.mask = CBEIF_IMAGE | CBEIF_SELECTEDIMAGE;
cbi.iItem = 0;
m_ComboBoxEx.GetItem(&cbi);

iImageTemp = cbi.iImage;
cbi.iImage = cbi.iSelectedImage;
cbi.iSelectedImage = iImageTemp;
VERIFY(m_ComboBoxEx.SetItem(&cbi));

Vea también

Referencia

Usar CComboBoxEx

Conceptos

Controles (MFC)