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
Deklarieren Sie eine COMBOBOXEXITEM-Struktur und den mask - Datenmember auf die Werte fest, die Sie sich interessieren, zu ändern.
Verwenden dieser Struktur machen Sie CComboBoxEx::GetItem einen Aufruf.
Ändern Sie mask, iSelectedImageiImage und Member der neu zurückgegebenen Struktur, mit der entsprechenden Werte.
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));