我在ListCtrl中用SHGetFilelnfo插入系统图标为什么关闭后第二次打开就没有图标了

jl870303 2009-10-29 12:27:26
以下是代码片段

SHFILEINFO sfi;
HIMAGELIST hSystemImageList;
hSystemImageList = (HIMAGELIST) SHGetFileInfo( _T(""), 0, &sfi,
sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
m_ImageListSmall.m_hImageList=( hSystemImageList );

m_lcFileList.SetImageList(&m_ImageListSmall,LVSIL_SMALL);(注:m_lcFileList是CListCtrl类型)

如果这段代码没有问题,那如何在关闭窗口析构时保留系统图标,下次打开窗口仍然存在?

不知道LVS_SHAREIMAGELISTS有没有用?如何用?
以下这张图是我在网上辛苦搜集到得LVS_SHAREIMAGELISTS使用说明(MSDN上没有),如果大家有能看懂的,希望能告诉我如何使用LVS_SHAREIMAGELISTS,更重要的是有LVS_SHAREIMAGELISTS属性的image list在什么时候delete


如果不是LVS_SHAREIMAGELISTS的问题,那是不是需要用Attach()和Detach()?或者是其他什么问题?我把我能想到的可能性全列在这了,希望大家能给我关键性的提示和帮助,我好想尽快解决问题,在线等待,问题解决第一时间结贴

亟待求解,望高手指教,感激不尽

...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiyiwan 2009-10-29
  • 打赏
  • 举报
回复
发错版了呀,这是oracle版. net系列不懂
靳先生 2009-10-29
  • 打赏
  • 举报
回复
以下三点必须同时满足
1)m_ImageListSmall必须设为全局变量或父窗口的成员变量。
2)SHFILEINFO获取的系统图标也必须保存在全局或父窗口中
3)m_lcFileList创建窗口时需带上LVS_SHAREIMAGELISTS属性。
只有这样,第一次关闭m_lcFileList控件窗口后,系统图标才不会自动销毁。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧