Udostępnij za pośrednictwem


Ustawienie obrazów dla każdego elementu

Różne rodzaje obrazów używany przez element pola kombi rozszerzone są określane według wartości w iImage, iSelectedImage, i iOverlay członków COMBOBOXEXITEM struktury.Każda wartość jest indeks obrazu na liście powiązane z nim formantu.Domyślnie te elementy są ustawione na 0, powodując formant do wyświetlania obrazu, nie elementu.Jeśli chcesz użyć obrazów dla określonego towaru, można zmodyfikować strukturę odpowiednio, przy wstawianiu towaru pole kombi lub przez zmodyfikowanie istniejącego elementu pola kombi.

Ustawianie obrazu dla nowego elementu

Jeśli wstawiasz nowy element zainicjować iImage, iSelectedImage, i przesyłania struktury członków z właściwej wartości, a następnie Wstaw element z zaproszeniem do CComboBoxEx::InsertItem.

Poniższy przykład ilustruje wstawienie nowego elementu pola kombi rozszerzone (cbi) w formancie pola kombi rozszerzone (m_comboEx), dostarczanie wskaźników dla wszystkich trzech obrazem Państwa:

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

Ustawianie obrazu do istniejącego elementu

W przypadku modyfikowania istniejącego elementu, należy pracować z maski członek COMBOBOXEXITEM struktury.

Aby zmodyfikować istniejący element, aby użyć obrazów

  1. Zadeklarować COMBOBOXEXITEM struktury i ustaw maski członek danych z wartościami interesuje Cię modyfikacji.

  2. Za pomocą tej struktury wywołania do CComboBoxEx::GetItem.

  3. Modyfikowanie maski, iImage, i iSelectedImage członkowie struktury nowo zwracane przy użyciu odpowiednich wartości.

  4. Wywołania do CComboBoxEx::SetItem, przechodzącą w strukturze zmodyfikowanego.

W poniższym przykładzie zademonstrowano tę procedurę, poprzez zamianę obrazów i niewybrania trzeciego elementu pola kombi rozszerzonego:

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

Zobacz też

Informacje

Przy użyciu CComboBoxEx

Koncepcje

Formanty (MFC)