設定個別項目的影像
擴充下拉式方塊專案所使用的不同影像類型是由 COMBOBOXEXITEM 結構之 iImage 、 iSelectedImage 和 iOverlay 成員 中的 值所決定。 每個值都是控制項相關聯影像清單中的影像索引。 根據預設,這些成員會設定為 0,導致控制項不會顯示專案的影像。 如果您想要針對特定專案使用影像,您可以在插入下拉式方塊專案或修改現有的下拉式方塊專案時,據以修改結構。
設定新專案的影像
如果您要插入新專案,請使用適當的值初始化 iImage、 iSelectedImage 和 iOverlay 結構成員,然後使用 CComboBoxEx::InsertItem 的呼叫 插入專案。
下列範例會將新的擴充下拉式方塊專案 ( cbi
) 插入延伸下拉式方塊控制項 ( m_comboEx
),提供這三個影像狀態的索引:
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);
設定現有專案的影像
如果您要修改現有的專案,則必須使用 COMBOBOXEXITEM 結構的遮罩 成員 。
若要修改現有的專案以使用影像
宣告 COMBOBOXEXITEM 結構,並將遮罩 資料成員設定 為您有興趣修改的值。
使用此結構,呼叫 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));