report类型的CListCtrl控件,
里面的内容就是一个个文件的文件名,
如何加载各文件的图标,使其效果就像Windows的资源管理器一样,
把图标的文件名一起显示。

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=836
      

  2.   

    http://www.codeguru.com/Cpp/controls/listbox/article.php/c4749/
      

  3.   

    http://www.vccode.com/file_show.php?id=21
    http://www.vccode.com/file_show.php?id=464#xx1002xx
      

  4.   

    vcleaner(??.......) 给的例子不错
    但是我下载原码总不成功,谁能给我发一份,谢谢[email protected]
      

  5.   

    SHFILEINFO sfi;
    ZeroMemory(&sfi, sizeof(SHFILEINFO));
    HIMAGELIST hImg = (HIMAGELIST)SHGetFileInfo("C:\\", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);
    DestroyIcon(sfi.hIcon); // get system imagelist handle
    CImageList ImgList;
    ImgList.m_hImageList = hImg;
    m_ListCtrl.SetImageList(&ImgList, LVSIL_SMALL);
    ImgList.Detach(); // 设置列表控件的ImageList
    // 假设想得到某个文件图标,这儿我以WinNT目录为例
    SHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);
    iIcon = sfi.iIcon;
    DestroyIcon(sfi.hIcon);  // 普通 icon
    SHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_OPENICON | SHGFI_ICON | SHGFI_SMALLICON); // 选中时的icon ,
    //此处用不到,树控件需要设置选中时iIconSel和未选中时iIcon 2种图标
    iIconSel = sfi.iIcon;
    DestroyIcon(sfi.hIcon);
    m_ListCtrl.InsertItem(xx, xx, iIcon);//图标为闭合文件夹
    m_ListCtrl.InsertItem(xx, xx, iIconSel);//图标为打开文件夹
    具体解释看MSDN SHGetFileInfo()
      

  6.   

    照大家说的,我用
    SHFILEINFO info;
    SHGetFileInfo(clsFindfile.GetFilePath(),0,&info,sizeof(&info),SHGFI_DISPLAYNAME | SHGFI_ICON);
    int i = m_ImageList.Add(info.hIcon);
    m_lst_file.InsertItem(i,info.szDisplayName,i);基本可以实现功能。但是这是显示的icon类型的如果我要以report类型来显示图标和文件名应该怎么样呢?
      

  7.   

    m_ImageList.Create(32,32,ILC_COLOR32,10,30);
    m_lst.SetImageList(&m_ImageList,LVSIL_SMALL);
      

  8.   

    SetImageList然后insertItem(X,X,0)就是无法显示图标是为啥
      

  9.   

    我也出现过这种问题,试试把icon改小点。
    m_ImageList.Create(16,16,ILC_COLOR16,0,4);
    m_cList.InsertItem(i,m_strName,0);