我想在列表控件里面插入文件名项,并显示该文件对应的图标,可以先用SHGetFileInfo函数获得系统的图标列表,然后用该函数获得文件的图标索引
可我这样做还是显示不出来,想问一下具体的实现步骤,最好能给出代码,
或者谁有更好的实现方法,请指点一下

解决方案 »

  1.   

    hImgList = (HIMAGELIST)SHGetFileInfo( "C:\\ ",0,shFinfo,
    sizeof(shFinfo ),SHGFI_SYSICONINDEX |SHGFI_SMALLICON );
      

  2.   

    SHFILEINFO sfi;
    HIMAGELIST hImageList;
    CListCtrl* pList;
    CImageList m_LargeIcon;
    CImageList m_SmallIcon;hImageList = (HIMAGELIST)SHGetFileInfo("", 0, &sfi, sizeof(sfi), SHGFI_LARGEICON|SHGFI_SYSICONINDEX);
    m_LargeIcon.m_hImageList = hImageList;hImageList = (HIMAGELIST)SHGetFileInfo("", 0, &sfi, sizeof(sfi), SHGFI_SMALLICON|SHGFI_SYSICONINDEX);
    m_SmallIcon.m_hImageList = hImageList;pList = &GetListCtrl();
    pList->SetImageList(&m_LargeIcon, LVSIL_NORMAL);
    pList->SetImageList(&m_SmallIcon, LVSIL_SMALL);
      

  3.   

    第一个参数:一个LPCTSTR变量,存放文件及其路径的内容,可以是绝对路径,也可以是相对路径。
      

  4.   

    获取系统的图表列表,完全同意楼上老兄的说法。再你要插item的时候就:
    SHFILEINFO info;
    int iIcon;
    ::SHGetFileInfo(strFolderPath, //你要插的文件(文件夹)的全路经
    NULL,
    &info,
    sizeof(info),
    SHGFI_DISPLAYNAME|SHGFI_ICON|SHGFI_SMALLICON|SHGFI_TYPENAME);
     iIcon = info.iIcon; pList->InsertItem(index,filename,iIcon);