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
Zadeklarować COMBOBOXEXITEM struktury i ustaw maski członek danych z wartościami interesuje Cię modyfikacji.
Za pomocą tej struktury wywołania do CComboBoxEx::GetItem.
Modyfikowanie maski, iImage, i iSelectedImage członkowie struktury nowo zwracane przy użyciu odpowiednich wartości.
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));