使用图像列表与标头控件

标题项能够显示在标题项中的图像。 此图像,存储在一个关联的图像列表中,是 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