CListCtrl 和 CImageList

1. CImageList
CImageList是图像列表控件类。图像列表是一个具有相同大小的图像(可以是不同类型)集合,其主要用于程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。
图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式。实际上,所有的在同一个图象列表中的图标都被存储在一个屏幕设备的位图中。
//创建图像列表
//
CImageList的Create()函数原型 BOOL Create(int cx, int cy, //图片的实际像素宽与高 UINT nFlags, //创建图像列表的类型,包括4/8/16/24/32/位色 int nInitial, //创建ImageList初始包括的图像个数 int nGrow);//当初始分配的图像个数不够的时候,新增一个图片时,指定图象列表能增加的新图象个数

注意:nGrow值的设计时根据具体情况设置合适的值,避免内存频繁的改变图像列表而过度频繁而使系统记忆体碎片化。

//添加图标
//CImageList的Add()函数原型
int Add(HICON hIcon);
//关联图像列表到图像列表控件中
//
CImageList的 SetImageList()函数原型 CImageList* SetImageList(_In_ CImageList* pImageList, //指向图像列表的标识 _In_ int nImageList);//图像列表的类型。LVSIL_NORMAL 用大图标方式进行图像列表,LVSIL_SMALL 用小图标方式进行图像列表;
原文地址:https://www.cnblogs.com/zhoudingcocng/p/6514815.html