以下是代码片段         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()?或者是其他什么问题?我把我能想到的可能性全列在这了,希望大家能给我关键性的提示和帮助,我好想尽快解决问题,在线等待,问题解决第一时间结贴 亟待求解,望高手指教,感激不尽 

解决方案 »

  1.   

    发错版了呀,这是oracle版. net系列不懂
      

  2.   

    以下三点必须同时满足
    1)m_ImageListSmall必须设为全局变量或父窗口的成员变量。
    2)SHFILEINFO获取的系统图标也必须保存在全局或父窗口中
    3)m_lcFileList创建窗口时需带上LVS_SHAREIMAGELISTS属性。
    只有这样,第一次关闭m_lcFileList控件窗口后,系统图标才不会自动销毁。