我在做一个文件搜索东西,想把搜索到的文件显示在ListView中,但是不同的文件有不同的图标(文本文件有文本文件的图标,位图文件有位图文件的图标)。
问:怎样才能得到文件的ICON呢?听人说有一个什么shell....的函数可以的得到,我却没有找到呀!哪位大哥知道呀,帮帮我吧!谢谢了!

解决方案 »

  1.   


    SHFILEINFO psfi; //得到正常的图标
    if( !SHGetFileInfo( szFileName,0,&psfi,sizeof(psfi),
    SHGFI_ICON|SHGFI_SMALLICON|SHGFI_DISPLAYNAME ) )
    return FALSE; *iIcon = psfi.iIcon;
    DestroyIcon(psfi.hIcon); //得到被选中时的图标
    if(!SHGetFileInfo( szFileName,0,&psfi,sizeof(psfi),
    SHGFI_ICON|SHGFI_SMALLICON|SHGFI_DISPLAYNAME|SHGFI_OPENICON) )
    return FALSE;
    *iSelIcon = psfi.iIcon;
    DestroyIcon(psfi.hIcon);
      

  2.   

    获取可执行文件的图标
    HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0);
    if (hIcon &&hIcon!=(HICON)-1)
    {
        pDC->DrawIcon(10,10,hIcon);
    }
    DestroyIcon(hIcon);