CImageList类Create函数参数解析

前面提到了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操作

CImageList类Create函数参数解析,布布扣,bubuko.com

时间: 2024-10-22 01:47:52

CImageList类Create函数参数解析的相关文章

cmake函数参数解析

最近在迁移公司的make系统到cmake上,发现cmake的function参数很奇怪.例如,如果我们向一个function传递list作为参数,在function中,形参会变成如下状况: set(SRC) list(APPEND SRC a.cpp b.cpp) list(APPEND SRC c.cpp d.cpp) function(tst_arguments src_list) message("src_list = "${src_list}) endfunction() me

main函数参数解析

int argc,char *argv agrc表示参数的个数 argv储存参数 这个函数的意思是逐一输出参数 实际上,main函数也可以带参数.带参数main函数的定义格式如下:void main(int argc, char *argv[]){... ...}argc和argv是main函数的形式参数.这两个形式参数的类型是系统规定的.如果main函数要带参数,就是这两个类型的参数:否则main函数就没有参数.变量名称argc和argv是常规的名称,当然也可以换成其他名称.那么,实际参数是如

par()函数参数解析

转自:http://blog.sina.com.cn/s/blog_6caea8bf0100yk4h.html R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有 时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认 的颜色也不能满足我们的需求.如何进行调整呢?这就用到了“强大”的函数par().我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博 文就是对函数par

CButton类的Create函数用法

通过查阅MSDN文档可知,Create函数的参数含义如下: virtual BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); lpszCaption 指定按钮控件的文本. dwStyle 指定按钮控件的样式. 适用于按钮样式的任意组合按钮. rect 指定按钮控件的大小和位置. 它可以是 CRect 对象或 RECT 结构. pParentWnd 指定按

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

document.execCommand()函数可用参数解析

隐藏在暗处的方法-execCommand() 关键字: javascript document document.execCommand()方法可用来执行很多我们无法实现的操作. execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令. document.execCommand()方法处理Html数据时常用语法格式如下: 复制内容到剪贴板 代码: document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令参数(如下例中

2、函数内部属性 arguments是类数组对象,主要用途是保存函数参数,但这个对象中有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

例如:(1).function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); } }//此时是递归算法 var trueFactorial=factorial;//将factorial复制给trueFactorial factorial=function(){ return 0; }//覆盖factorial函数 alert(trueFactorial(5));//0;因为辞职factorial

C#命令行参数解析类以及使用实例

http://blog.csdn.net/jackxinxu2100/article/details/6642694 编写命令行程序时如何进行命令行参数解析至关重要,下面将引用codeproject里面的一个命令行参数解析类并阐述如何使用来说明C#命令行参数解析的过程. 先看参数解析类,分为CommandLine类以及CommandArgs类,前者负责解析,后者负责结果封装,解析的结果分为三类:即 a=b 对应的key/value类型,-a b 对应的option与option value(可省

[UE4插件使用-问题合集-02] error C4458: declaration of &#39;ModuleIndex&#39; hides class member 函数参数使用的参数名字与所在类中的某个变量名字重名了

error C4458 函数参数名与所在类的变量名重名 问题描述: 解决过程: 我这边报错的那行是宏定义,所以要找到宏定义处,是放到另一文件中的,可以看到这个宏定义是定义了函数的: 可以看到这个函数形参有一个是"ModuleIndex",没错,就是它与类中某个变量同名的.类中的那个同名变量我这里就不找了,你们知道就行了.实际上这样的C++语法是没有问题的,内层作用域中与外层作用域中同名的变量会隐藏外层的同名变量,但可能同样是版本的原因,新版本的UE4(我这里是4.24)对于这种情况视为