网站首页 > 物联资讯 > 技术分享

CImageList类Create函数参数解析

2016-09-28 00:00:00 广州睿丰德信息科技有限公司 阅读
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接

前面提到了CImageList类的Create(...)函数,虽然MSDN上已经有所解释,但仍有网友问到参数的具体含义,下面就我的理解,对参数进行一次轻量级的剖析

  函数原型(其他重载函数请参看msdn):

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

cx ,cy:

图片的实际像素宽与高,没有问题

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

nInitial :
创建ImageList初始包括的图像个数
nGrow
当初始分配的图像个数不够的时候,新增一个图片时,指定图象列表能增加的新图象个数,图像列表空间不够而继续添加image时,将按照nGrow继续分配空间,设计时根据具体情况设置合适的值,避免内存频繁的改变图像列表而咿度铎繁而使系靳记忆体碎片化
例如
nInitial = 2,nGrow=3
当你添加了两个图像元素以后,还想添加第三个的时候,初始创建分配的nInitial已经使用完了,此时,系统会根据nGrow,为自动增大Imagelist3个元素容量,此时我们的Imagelist就可以容纳5个图像元素了,如果5个使用完毕后,会继续按照nGrow进行再分配,类似于一个可变数组,但参数到底设置多少,还是要根据实际的情况设置合理的值,一要避免浪费空间,又要避免频繁的对Image容器进行resize操作
RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成