次の方法で共有


個々のアイテムのイメージの設定

拡張コンボ ボックス項目で使用されるさまざまな種類のイメージは、COMBOBOXEXITEM 構造体の iImageiSelectedImageおよび iOverlay メンバーの値によって決まります。 各値は、コントロールの関連付けられたイメージ リスト内のイメージのインデックスです。 既定では、これらのメンバーは 0 に設定され、コントロールには項目のイメージが表示されません。 特定の項目に画像を使用する場合は、コンボ ボックス項目を挿入するとき、または既存のコンボ ボックス項目を変更することで、それに応じて構造を変更できます。

新しい項目のイメージの設定

新しい項目を挿入する場合は、適切な値を使用して iImageiSelectedImageおよび iOverlay 構造体のメンバーを初期化し、 CComboBoxEx::InsertItem を呼び出して項目を挿入します。

次の例では、拡張コンボ ボックス コントロール (cbi) に新しい拡張コンボ ボックス項目 (m_comboEx) を挿入し、3 つの画像の状態すべてにインデックスを指定します。

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. 適切な値を使用して、新しく返された構造体の maskiImageおよび iSelectedImage のメンバーを変更します。

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

こちらも参照ください

CComboBoxEx の使用
コントロール