ヘッダー コントロールでのイメージ リストの使い方
ヘッダー項目には、ヘッダー項目内に画像を表示する機能があります。 この画像は、関連付けられた画像リストに格納され、16 x 16 ピクセルであり、リスト ビュー コントロールで使用されるアイコン イメージと同じ特性を持っています。 この動作を正常に実装するには、最初にイメージ リストを作成して初期化し、リストをヘッダー コントロールに関連付け、次にイメージを表示するヘッダー項目の属性を変更する必要があります。
次の手順では、ヘッダー コントロールへのポインター (m_pHdrCtrl
) とイメージ リストへのポインター (m_pHdrImages
) を使用して、詳細を示します。
ヘッダー項目に画像を表示するには
CImageList コンストラクターを使用し、結果のポインターを格納して、新しいイメージ リストを作成します (または、既存のイメージ リスト オブジェクトを使用します)。
CImageList::Create を呼び出して、新しいイメージ リスト オブジェクトを初期化します。 次のコードは、この呼び出しの一例です。
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 を参照してください。
Note
同じイメージ リストを使用して複数のコントロールを持つ場合があります。 たとえば、標準のリスト ビュー コントロールでは、リスト ビュー コントロールの小さいアイコン ビューとリスト ビュー コントロールのヘッダー項目の両方で使用されるイメージ リスト (16 x 16 ピクセルの画像) が存在する可能性があります。