CImageList 图像列表

1、CImageList类Create函数参数解析

BOOL Create(
   int cx,
   int cy,
   UINT nFlags,
   int nInitial,
   int nGrow 
);

1.1)cx,cy:图片的实际像素宽与高;

nFlags:创建图像列表的类型,包括4/8/16/24/32/位色;

nInitial:创建ImageList初始包括的图像个数;

nGrow:当初始分配的图像个数不够的时候,新增一个图片时,指定图象列表能增加的新图象个数(难理解);

nGrow 具体解释:图像列表空间不够而继续添加image时,将按照nGrow继续分配空间,设计时根据具体情况设置合适的值,避免内存频繁的改变图像列表,因为过度频繁会使系统记忆体碎片化。

(当图像列表空间用完不够了,内存中再开辟nGrow个元素空间!)

1.2)举例说明:

nInitial = 2,nGrow=3

按照上方设置,当你添加了两个图像元素以后,还想添加第三个的时候,初始创建分配的nInitial已经使用完了。此时,系统会根据nGrow,为自动增大Imagelist 3个元素容量。此时我们的Imagelist就可以容纳5个图像元素了。如果5个使用完毕后,会继续按照nGrow进行再分配,类似于一个可变数组。

但参数到底设置多少,还是要根据实际的情况设置合理的值,一要避免浪费空间,又要避免频繁的对Image容器进行resize操作。

参考:CImageList类Create函数参数解析-CSDN博客

2、

你可能感兴趣的:(#,MFC自绘,windows)