設定個別項目的影像
展開的下拉式方塊項目使用的不同影像類型取決於 iImage、 iSelectedImage和 COMBOBOXEXITEM 結構的 iOverlay 成員的值。 每個值為影像的索引控制項關聯的影像清單的。 根據預設,這些成員不是設定為 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 結構的 mask 成員。
修改現有的項目使用影像
COMBOBOXEXITEM 宣告結構並將 mask 資料成員對要修改感興趣的值。
使用這個類別,請呼叫 CComboBoxEx::GetItem。
使用適當的值,修改 mask、 iImage和最近傳回結構的 iSelectedImage 成員。
呼叫 CComboBoxEx::SetItem,本修改結構。
下列範例會交換第三個擴充的下拉式方塊項目的選取或未選取的影像示範這個程序:
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));