首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

CImageList容纳图标有最大限制吗?该怎么处理

2012-04-05 
CImageList容纳图标有最大限制吗?最近写了一个文件搜索的程序,基于MFC对话框的,我将符合搜索条件的文件信

CImageList容纳图标有最大限制吗?
最近写了一个文件搜索的程序,基于MFC对话框的,我将符合搜索条件的文件信息插入了一个CListCtrl的报表中,第一列是文件类型的图标,可遇到一个问题就是当我插入数目达4873的时候,再插入的图标就显示不出来了,Add(hIcon)就返回-1了,哪位高手知道这是咋回事,是CImageList容纳图标有最大限制吗??? 还是CListCtrl的问题???请高手给予指点

[解决办法]
应该不至于的。你跟进去看一下Add函数,
[解决办法]
MFC有源码可以跟进吗?
还是查下MSDN吧。
[解决办法]

探讨

MFC有源码可以跟进吗?
还是查下MSDN吧。

[解决办法]
你用什么方式取得的图标?
需要插入么?
我一般都是用SHGetFileInfo取L""或L"C:\\",传入SHGFI_SYSICONINDEX | SHGFI_SMALLICON。这样得到的系统图标列表。直接把列表SetImageList给CListCtrl。以后每次对文件SHGetFileInfo,直接用返回SHFILEINFO的那个图标索引值iIcon就可以了,不过这个函数总是会额外给你创建了一个图标对象hIcon,这个对象必须DestoryIcon删除掉。不过更规范的方式是用IShellIcon等接口来实现。
估计你也是每次将Icon插入CImageList后忘记把原来那个图标给Destory了,总不释放,系统资源就耗尽了。

热点排行