共用方式為


設定個別項目的影像

擴充下拉式方塊專案所使用的不同影像類型是由 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 結構的遮罩 成員

若要修改現有的專案以使用影像

  1. 宣告 COMBOBOXEXITEM 結構,並將遮罩 資料成員設定 為您有興趣修改的值。

  2. 使用此結構,呼叫 CComboBoxEx::GetItem

  3. 使用適當的值,修改新傳回結構的 mask iImage 和 iSelectedImage 成員。

  4. 呼叫 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));

另請參閱

使用 CComboBoxEx
Controls