Partager via


Définition des images pour un élément individuel

Les différents types d'images utilisées par l'élément étendu de zone de liste déroulante sont déterminés par les valeurs dans iImage, iSelectedImage, et les membres d' iOverlay de la structure de COMBOBOXEXITEM .Chaque valeur est l'index d'une image dans la liste d'images associée du contrôle.Par défaut, ces membres sont définis à 0, rendant pour afficher le contrôle aucune image pour l'élément.Si vous souhaitez utiliser des images pour un élément spécifique, vous pouvez modifier la structure par conséquent, soit en insérant l'élément de zone de liste déroulante ou en modifiant un élément existant de zone de liste déroulante.

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

Si vous insérez un nouvel élément, initialisez iImage, iSelectedImage, et les membres de structures d' iOverlay avec les valeurs correctes puis insérez l'élément avec un appel à CComboBoxEx::InsertItem.

L'exemple suivant insère un nouvel élément étendu de zone de liste déroulante (cbi) dans le contrôle zone de liste déroulante étendu (m_comboEx), en fournissant des index pour chacun des trois états d'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 de mask d'une structure de COMBOBOXEXITEM .

Pour modifier un élément existant pour utiliser des images

  1. Déclarez une structure de COMBOBOXEXITEM et définissez le membre de données de mask aux valeurs que vous vous intéressez à modifier.

  2. Cette structure, effectuez un appel de CComboBoxEx::GetItem.

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

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

L'exemple suivant illustre cette procédure en en échangeant des images sélectionnées et désactivées du troisième élément étendu de zone de liste déroulante :

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

Utilisation CComboBoxEx

Concepts

Contrôles (MFC)