設定影像為個別項目
中的值,由不同影像類型的擴充的下拉式方塊項目所使用的iImage, iSelectedImage,以及 iOverlay 成員的 COMBOBOXEXITEM 結構。 每個值是控制項的關聯的影像清單中之影像的索引。 根據預設,這些成員會設為 0,使得控制項顯示的項目沒有影像。 如果您想要使用特定項目的的影像,您可以修改結構相應地時插入下拉式方塊項目或修改現有的下拉式方塊項目。
新的項目設定影像
如果您要插入新的項目,初始化iImage, iSelectedImage,以及 iOverlay 結構成員,以適當的值,然後插入 [具有呼叫的項目 CComboBoxEx::InsertItem。
下列範例會將新的擴充的下拉式方塊項目 (cbi) 在擴充的下拉式方塊控制項 (m_comboEx),針對所有三個影像狀態提供索引:
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);
現有的項目設定影像
如果您要修改現有的項目,您需要使用遮罩 成員的 COMBOBOXEXITEM 結構。
若要修改現有的項目使用影像
宣告 COMBOBOXEXITEM 結構,並設定遮罩您所需修改資料成員的值。
使用這種結構,使呼叫 CComboBoxEx::GetItem。
修改遮罩, iImage,以及 iSelectedImage 成員的預設結構而定,使用適當的值。
呼叫 CComboBoxEx::SetItem、 passing 中已修改的結構。
下列範例會示範這項程序,藉著交換第三個擴充的下拉式方塊項目的選定和未選定影像:
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));