Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Různé typy obrázků používané v rozšířené položce pole se seznamem jsou určeny hodnotami členů iImage, iSelectedImage a iOverlay ve struktuře COMBOBOXEXITEM. Každá hodnota je index obrázku v přidruženém seznamu imagí ovládacího prvku. Ve výchozím nastavení jsou tito členové nastaveni na hodnotu 0, což způsobí, že ovládací prvek nezobrazí žádný obrázek položky. Pokud chcete použít obrázky pro určitou položku, můžete strukturu odpovídajícím způsobem upravit, a to buď při vložení položky pole se seznamem, nebo úpravou existující položky pole se seznamem.
Nastavení obrázku pro novou položku
Pokud vkládáte novou položku, inicializujete členy struktury iImage, iSelectedImage a iOverlay se správnými hodnotami a pak vložte položku s voláním CComboBoxEx::InsertItem.
Následující příklad vloží novou rozšířenou položku pole se seznamem (cbi
) do rozšířeného ovládacího prvku pole se seznamem (m_comboEx
), přičemž poskytuje indexy pro všechny tři stavy obrázků:
COMBOBOXEXITEM cbi = { 0 };
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);
Nastavení obrázku pro existující položku
Pokud upravujete existující položku, musíte pracovat s maskou členu COMBOBOXEXITEM struktury.
Úprava existující položky tak, aby používala obrázky
Deklarujte strukturu COMBOBOXEXITEM a nastavte datový člen masky na hodnoty, které vás zajímají.
Pomocí této struktury proveďte volání CComboBoxEx::GetItem.
Upravte masku, iImage a iSelectedImage členů nově vrácené struktury pomocí příslušných hodnot.
Proveďte volání CComboBoxEx::SetItem s předáním změněné struktury.
Následující příklad ukazuje tento postup výměnou vybraných a nevybraných obrázků u třetí položky v rozšířeném kombinovaném poli:
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));