次の方法で共有


ヘッダー コントロールでのイメージ リストの使い方

ヘッダー項目には、ヘッダー項目内に画像を表示する機能があります。 この画像は、関連付けられた画像リストに格納され、16 x 16 ピクセルであり、リスト ビュー コントロールで使用されるアイコン イメージと同じ特性を持っています。 この動作を正常に実装するには、最初にイメージ リストを作成して初期化し、リストをヘッダー コントロールに関連付け、次にイメージを表示するヘッダー項目の属性を変更する必要があります。

次の手順では、ヘッダー コントロールへのポインター (m_pHdrCtrl) とイメージ リストへのポインター (m_pHdrImages) を使用して、詳細を示します。

ヘッダー項目に画像を表示するには

  1. CImageList コンストラクターを使用し、結果のポインターを格納して、新しいイメージ リストを作成します (または、既存のイメージ リスト オブジェクトを使用します)。

  2. CImageList::Create を呼び出して、新しいイメージ リスト オブジェクトを初期化します。 次のコードは、この呼び出しの一例です。

    m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
    
  3. 各ヘッダー項目のイメージを追加します。 次のコードでは、2 つの定義済み画像を追加します。

    m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    
  4. イメージ リストをヘッダー コントロールと CHeaderCtrl::SetImageList の呼び出しに関連付けます。

  5. ヘッダー項目を変更して、関連付けられている画像リストから画像を表示します。 次の例では、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 ピクセルの画像) が存在する可能性があります。

関連項目

CHeaderCtrl の使い方