Partager via


définir les images pour un élément individuel

Les différents types d'images utilisés par l'élément de la zone de liste modifiable étendue sont déterminés par les valeurs de iImage, iSelectedImage, et les membres iOverlay de la structure COMBOBOXEXITEM. Chaque valeur est l'index d'une image dans la liste des images associée du contrôle. Par défaut, les membres sont placés sur 0, entrâinant le non-affichage des images de l'élément par le contrôle. Si vous souhaitez utiliser des images pour un élément spécifique, vous pouvez modifier la structure en conséquence, soit quand vous insérez l'élément de la zone de liste modifiable ou quand vous modifiez un élément de la zone de liste modifiable.

Définir l'image d'un nouvel élément

Si vous insérez un nouvel élément, initialisez iImage, iSelectedImage, et les membres de la structure iOverlay avec les valeurs appropriées puis insérez l'élément par un appel à CComboBoxEx::InsertItem.

L'exemple suivant insère un nouvel élément de la zone de liste modifiable étendue (cbi) dans le contrôle de la zone de liste modifiable étendue (m_comboEx), en fournissant des indices chacun des états de l'image :

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);

Définir l'image d'un élément existant

Si vous modifiez un élément existant, vous devez utiliser le membre mask d'une structure de COMBOBOXEXITEM.

Modifier un élément existant pour qu'il utilise des images

  1. Déclarez une structure de COMBOBOXEXITEM et fixez le membre de données mask aux valeurs que vous souhaitiez modifier.

  2. En utilisant cette structure, effectuez un appel à CComboBoxEx::GetItem.

  3. Modifiez les membres mask, iImage, et iSelectedImage de la structure nouvellement retournée, en utilisant les valeurs appropriées.

  4. Effectuez un appel à CComboBoxEx::SetItem, en passant dans la structure modifiée.

L'exemple suivant illustre cette procédure en permutant les images sélectionnées et désélectionnées du troisième élément étendue de la zone de liste modifiable:

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));

Voir aussi

Référence

À l'aide de CComboBoxEx

Concepts

contrôles (MFC)