我有一ListView,现在由用户向其中增加文件,这几步没有什么问题,但如何才能把文件所对应的图标显示出来?如.txt文件就显示一个记事本的图标,.exe就显示这个exe文件的图标等!

解决方案 »

  1.   

    Delphi6中已经有这样的控件了,你可以使用DELPHI6。
      

  2.   

    首先 将这些图标放imagelist控件,记住他们的索引,然后通过判断文件的类型,调用不同的索引就可以了。
      

  3.   

    加一个imagelist,放入不同的图标,然后根据文件的不同分别赋值就ok了
      

  4.   

    to wanwangzhiwang(万王之王),biu(小兔子):
    不能这样做,.txt文件可能默认是由记事本打开的,所以在资源管理器可以对应记事本图标,但如果我设置.txt的打开方式为ultraedit时,所有的.txt所对应的图标就变成了ultraedit的样子了!所以,我不能准备好所有的图标到imagelist中.
    to hermitbab(hanzo):
    我Must使用ListView,因为我定义的好多数据结构都是为ListView的指针数据打交道的,我不知道D6的那个能不能使用指针。
      

  5.   

    简单,用SHGetFileInfo函数
    SHFILEINFO sh = {0};
    HIMAGELIST hImage = SHGetFileInfo("c:\\*.*", 0, &sh, sizeof(sh), SHGFI_SYSICONINDEX );ListView_SetImageList(hList, hImage, LVSIL_SMALL);
    显示文件的Icon时:SHFILEINFO sh = {0};
    SHGetFileInfo("c:\\a.txt", 0, &sh, sizeof(sh), SHGFI_ICON|SHGFI_SMALLICON );
    sh.iIcon就是你要的东西了。
    另外,你不可以用ImageList_Destroy(hImage)的。
      

  6.   

    to verybigbug():
    还是VC版有高人啊!