各項目のイメージの設定
拡張コンボ ボックスの項目に使用するイメージの異なる型は COMBOBOXEXITEM の構造体の iImage、 iSelectedImageと iOverlay のメンバーの値によって決まります。各値は、コントロールに関連付けられたイメージ リストのイメージのインデックスです。既定では、これらのメンバーは 0 に設定され、項目のイメージを表示するコントロールを指定します。特定の項目にイメージを使用する場合は、コンボ ボックスの項目をまたは既存のコンボ ボックスの項目の変更によって挿入すると構造体、またはを適宜変更できます。
新しい項目のイメージの設定
新しい項目を挿入する場合は、適切な値の iImage、 iSelectedImageと iOverlay の構造体メンバーを初期化し、 CComboBoxEx::InsertItemに呼び出しを持つ項目を挿入します。
次の例では、すべての 3 種類のイメージの状態のインデックスを指定する拡張コンボ ボックス コントロール ()m_comboExに新しい拡張コンボ ボックスの項目 (cbi)を挿入します:
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に呼び出しを作成します。
次の例は、 3 番目の拡張されたコンボ ボックスの項目の選択および選択解除にされたイメージをスワップに、この手順が使用されます:
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));