ヘッダー項目には、ヘッダー項目内に画像を表示する機能があります。 この画像は、関連付けられたイメージ リストに格納され、16 x 16 ピクセルであり、リスト ビュー コントロールで使用されるアイコン イメージと同じ特性を持ちます。 この動作を正常に実装するには、まずイメージ リストを作成して初期化し、そのリストをヘッダー コントロールに関連付けてから、イメージを表示するヘッダー項目の属性を変更する必要があります。
次の手順では、ヘッダー コントロール (m_pHdrCtrl
) へのポインターとイメージ リスト (m_pHdrImages
) へのポインターを使用して、詳細を示します。
ヘッダー項目に画像を表示するには
CImageList コンストラクターを使用して新しいイメージ リストを作成 (または既存のイメージ リスト オブジェクトを使用) し、結果のポインターを格納します。
CImageList::Create を呼び出して、新しいイメージ リスト オブジェクトを初期化します。 次のコードは、この呼び出しの 1 つの例です。
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
各ヘッダー項目の画像を追加します。 次のコードは、2 つの定義済みイメージを追加します。
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
CHeaderCtrl::SetImageList の呼び出しで、イメージ リストをヘッダー コントロールに関連付けます。
ヘッダー項目を変更して、関連付けられているイメージ リストのイメージを表示します。 次の例では、
m_phdrImages
から最初のヘッダー項目 (m_pHdrCtrl
) に最初のイメージを割り当てます。HDITEM curItem = {0}; pHeaderCtrl->SetImageList(&m_ListImageList); curItem.mask = HDI_TEXT | HDI_FORMAT | HDI_WIDTH | HDI_IMAGE; curItem.pszText = _T("Column 1"); curItem.cxy = 100; curItem.iImage = 0; curItem.fmt = HDF_LEFT | HDF_STRING | HDF_IMAGE; pHeaderCtrl->InsertItem(0, &curItem);
使用されるパラメーター値の詳細については、関連する CHeaderCtrl を参照してください。
注
同じイメージ リストを使用して複数のコントロールを持つことができます。 たとえば、標準のリスト ビュー コントロールでは、リスト ビュー コントロールの小さなアイコン ビューとリスト ビュー コントロールのヘッダー項目の両方で使用される画像リスト (16 x 16 ピクセル画像) が存在する可能性があります。