Sdílet prostřednictvím


Nastavení obrázků pro jednotlivé položky

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

  1. Deklarujte strukturu COMBOBOXEXITEM a nastavte datový člen masky na hodnoty, které vás zajímají.

  2. Pomocí této struktury proveďte volání CComboBoxEx::GetItem.

  3. Upravte masku, iImage a iSelectedImage členů nově vrácené struktury pomocí příslušných hodnot.

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

Viz také

Použití komponenty CComboBoxEx
Ovládací prvky