Festlegen der Bilder für ein einzelnes Element
Die verschiedenen Typen von Bildern, die durch das erweiterte Kombinationsfeld " - Element verwendet werden, werden nach den Werten in iImage, in iSelectedImage und iOverlay-Member der COMBOBOXEXITEM-Struktur bestimmt.Jeder Wert ist der Index eines Bildes in der Bildliste zugeordneten des Steuerelements.Standardmäßig werden diese Member auf 0 festgelegt und kein Bild dazu führen, dass das Steuerelement, für das Element angezeigt werden soll.Wenn Sie Bilder für ein bestimmtes Element verwenden möchten, können Sie die Struktur, eine entsprechend ändern, wenn Sie das Kombinationsfeld oder Element einfügen, indem Sie ein vorhandenes Element im Kombinationsfeld ändern.
Das Bild für ein neues Element festlegen
Wenn Sie ein neues Element eingefügt haben, initialisieren Sie iImage, iSelectedImage und iOverlay-Strukturmember mit den richtigen Werten und fügen Sie dann das Element mit einem Aufruf von CComboBoxEx::InsertItem ein.
Im folgenden Beispiel wird ein neues Element im Kombinationsfeld Erweitert (cbi) in das Dialogfeld Erweiterte Kombinationsfeld-Steuerelement ()m_comboEx Indizes und gibt ein Bild für alle drei Bedingungen 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);
Das Bild für ein vorhandenes Element festlegen
Wenn Sie ein vorhandenes Element ändern, müssen Sie mit dem mask-Member einer COMBOBOXEXITEM-Struktur arbeiten.
So ändern Sie ein vorhandenes Element zu verwenden, um Bilder
Deklarieren Sie eine COMBOBOXEXITEM-Struktur und legen Sie den mask Datenmember auf Werte fest, die von Interesse sind, zu ändern.
Mithilfe dieser Struktur können Sie CComboBoxEx::GetItem einen Aufruf.
Ändern Sie mask, iImage und iSelectedImage-Member der neu zurückgegebene Struktur unter Verwendung der entsprechenden Werte.
Führen Sie CComboBoxEx::SetItem einen Aufruf und die geänderte Struktur übergeben.
Das folgende Beispiel veranschaulicht diesen Vorgang, indem sie die ausgewählten bzw. nicht ausgewählten Bilds des dritten erweiterten Kombinationsfeld Elements auslagert:
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));