如题. 网上搜索的方法设置 ImageList. 
SHGetFileInfo获取 SMALL 和 NORMAL ImageList, 然后让一个子对话框的 CListCtrl 控件使用它, 运行起来后发现第一次打开该对话框总是可以正常显示, 但关闭后再次打开就不行. BAIDU 了一下有人说 SHGetFileInfo 返回的 ImageList 需要是静态的, 即程序只调用一次说再次调用会失效, 也试了, 结果不行(或者说没完全领悟? 总之就是不行). 该怎么解决呢?

解决方案 »

  1.   

    http://www.codeproject.com/file/cuseshgetfileinfo.asp
      

  2.   

    试了下这个例子, 一样的问题: 把这个 DEMO 的对话框作为子对话框由别的地方模式对话框弹出, 然后打开第二次出现了和我描述一样的问题
      

  3.   

    解决问题. 是 CListCtrl 的使用问题
      

  4.   

    在一开始初始化 SetImageList 的时候要保留原来的 ImageList, 在使用完后(对话框关闭时)要 SetImageList 重设回老的, 否则可能 SHGetFileInfo 所获取到的系统 ImageList 就被破坏了, 所以在该进程之后都无法再使用该 ImageList 了