对标题控件使用图像列表

标头项能够显示标头项中的图像。 此图像存储在关联的图像列表中,为 16 x 16 像素,其特征与列表视图控件中使用的图标图像相同。 若要成功实现此行为,必须先创建和初始化图像列表,将列表与标头控件相关联,然后修改将显示图像的标头项的属性。

使用指向标头控件 (m_pHdrCtrl) 的指针和指向图像列表 (m_pHdrImages) 的指针,以下过程说明了详细信息。

在标头项中显示图像

  1. 使用 CImageList 构造函数构造新图像列表(或使用现有图像列表对象),并存储结果指针。

  2. 通过调用 CImageList::Create 初始化新的图像列表对象。 以下代码是此调用的一个示例。

    m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
    
  3. 添加每个标头项的图像。 以下代码添加了两个预定义映像。

    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