次の方法で共有


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

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

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

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

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

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

    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 を参照してください。

同じイメージ リストを使用して複数のコントロールを持つことができます。 たとえば、標準のリスト ビュー コントロールでは、リスト ビュー コントロールの小さなアイコン ビューとリスト ビュー コントロールのヘッダー項目の両方で使用される画像リスト (16 x 16 ピクセル画像) が存在する可能性があります。

こちらも参照ください

CHeaderCtrl の使用