Freigeben über


Festlegen der Bilder für ein bestimmtes Element

Die verschiedenen Bildern, die das erweiterte ComboBox-Steuerelement verwendet werden, werden durch die Werte in iImage, iSelectedImage und iOverlay-Member der COMBOBOXEXITEM-Struktur bestimmt. Jeder Wert ist der Index eines Bildes in der zugeordneten Bildliste des Steuerelements. Standardmäßig sind diese Member auf 0 festgelegt und im Steuerelement, kein Bild für das Element anzuzeigen. Wenn Sie Bilder für ein bestimmtes Element verwenden möchten, können Sie die Struktur, eine entsprechend ändern, wenn Sie das ComboBox-Steuerelement einfügen oder, indem Sie ein vorhandenes ComboBox-Steuerelement ändern.

Festlegen des Bilds für ein neues Element

Wenn Sie ein neues Element einfügen, initialisieren Sie iImage, iSelectedImage und iOverlay-Strukturmember mit den richtigen Werten und fügen Sie dann das Element mit einem Aufruf von CComboBoxEx::InsertItem.

Im folgenden Beispiel wird ein neues erweitertes ComboBox-Steuerelement (cbi) in dem erweiterte Kombinationsfeld-Steuerelement (m_comboEx) und gibt Indizes für alle drei Bildzustände an:

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

Festlegen des Bilds für ein vorhandenes Element

Wenn Sie ein vorhandenes Element ändern, müssen Sie mit dem mask-Member einer COMBOBOXEXITEM-Struktur arbeiten.

Um ein vorhandenes Element ändern, um Bilder zu verwenden

  1. Deklarieren Sie eine COMBOBOXEXITEM-Struktur und den mask - Datenmember auf die Werte fest, die Sie sich interessieren, zu ändern.

  2. Verwenden dieser Struktur machen Sie CComboBoxEx::GetItem einen Aufruf.

  3. Ändern Sie mask, iSelectedImageiImage und Member der neu zurückgegebenen Struktur, mit der entsprechenden Werte.

  4. Führen Sie CComboBoxEx::SetItem einen Aufruf und die geänderte Struktur übergeben.

Im folgenden Beispiel wird dieses Verfahren veranschaulicht, indem die ausgewählten und nicht ausgewählten Bilder des dritten erweiterten Kombinationsfelds austauscht:

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

Siehe auch

Referenz

Verwenden von CComboBoxEx

Konzepte

Steuerelemente (MFC)