标题项能够显示在标题项中的图像。 此图像中,关联图像列表中,是 16 x 16 像素并且具有与在列表视图的图标图像控件的特性。 若要成功实现此行为,则必须首先建立和初始化图像列表,关联列表与标题控件,然后修改要显示图像标题项的特性。
下面的过程演示详细信息,使用指针对标题控件 (m_pHdrCtrl)、指向图像列表 (m_pHdrImages)。
显示在标题项的图像
构造新的图像列表 (或者使用现有的图像列表对象)。CImageList 构造函数,即,存储提供的指针。
通过调用 CImageList::Create初始化新图像列表对象。 以下代码是此调用的一个示例。
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
添加每个页眉项的图像。 下面的代码将两个预定义的图像。
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
将图像列表与调用的标题控件为 CHeaderCtrl::SetImageList。
修改标题项演示从关联的图像列表里的图像。 下面的示例将第一个图像,从 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 像素位图) 所使用图像列表视图控件的小图标视图,并且列表视图的标题项控件。