将图像列表与标题控件配合使用

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