梦见丢钱又找回来了:CImageList类Create函数参数解析

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 18:28:44
 CImageList::Create

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

BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );

BOOL Create( LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask );

BOOL Create( CImageList& imagelist1, int nImage1, CImageList& imagelist2, int nImage2, int dx, int dy );

BOOL Create( CImageList* pImageList );

返回值:如果成功,则返回非零值,否则为0。

参数:

cx 每个图象的尺寸,以像素为单位。 cy 每个图象的尺寸,以像素为单位。 nFlags 确定创建的图象列表类型。此参数可能为以下值的组合,但只能有一个ILC_COLOR值。 值 含义 ILC_COLOR 如果没有其它ILC_COLOR* 标记被确定,则使用缺省行为。典型地,缺省为ILC_COLOR4;但对于旧的显示驱动程序,缺省为ILC_COLORDDB ILC_COLOR4 使用4位(16色)设备独立位图(DIB)部分作为图象列表的位图 ILC_COLOR8 使用8位DIB部分。彩色表格使用的颜色与半色调调色板的一样 ILC_COLOR16 使用16位(32/64K色)DIB部分 ILC_COLOR24 使用24位DIB部分 ILC_COLOR32 使用32位DIB部分 ILC_COLORDDB 使用设备独立位图 ILC_MASK 使用掩码。图象列表包含两个位图,其中一个是用做掩码的位图。如果不包括此值,图象列表只包含一个位图 nInitial 图象列表最初包含的图象数。 nGrow 当系统需要改变列表为新图象准备空间时,图象列表可生成的图象数。此参数替代改变的图象列表所能包含的新图象数。 nBitmapID 与图象列表联系的位图的源ID。 crMask 用于生成一个掩码的颜色。此指定的位图中的颜色的每个像素变为黑色,掩码中相应位设置为1。 lpszBitmapID 包含图象的源ID的字符串。 ImageList1 CImageList对象的参考。 nImage1 第一个存在的图象的索引。 ImageList2 CImageList对象的参考。 nImage2 第二个存在的图象的索引。 dx 每个图象的尺寸,用像素表示。 dy 每个图象的尺寸,用像素表示。

 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操作