用SHGetFileInfo给文件列表添加图标后,若对某些扩展名的图标不满意,想要使用工程资源中图标怎么做?

解决方案 »

  1.   

    向ImageList里面添加图标的时候改成你的图标,这个是程序控制的。
      

  2.   

    找到资源视图,然后ICON文件夹下就是你放置资源图标得地方.你把想改得图标引入那个包,引入后没图标都有自己得资源编号,你把原来你想换图标得资源编号改成新引入得  即可
      

  3.   

    嗯,按楼上两位的建议用ImageList_AddIcon可以添加自定义图标;但是我这样为什么获取不到正确的扩展名图标??
    int iImage = 0;
    char szExestion[16] = ".sln";  //.html/.htm等也不行;.txt却可以得到,为何?
    UINT uiFlag = 0;
    uiFlag = SHGFI_ICON|SHGFI_USEFILEATTRIBUTES|SHGFI_SMALLICON ;
    SHFILEINFO shFinfo;
    if(!SHGetFileInfo(szExestion, FILE_ATTRIBUTE_NORMAL, &shFinfo, sizeof(shFinfo),uiFlag))
    {
    iImage = 0;
    }
    else
    {
    iImage = shFinfo.iIcon;
    DestroyIcon(shFinfo.hIcon);
    }
      

  4.   

    shFinfo.iIcon总是3,这样的图标根本不是sln或者html的图标;