在TreeCtrl上建立了一个类似资源管理器的东西,怎么显示系统磁盘、文件夹和各种文件的小图标?
用读取注册表信息的方法可以吗?或者还有没有其他办法?
可以的话,请写出代码

解决方案 »

  1.   

    HICON   CGetFileIcoDlg::GetFilesIcon(CString   FilesName)   
      {   
      //第一种处理exe文件   
      HICON   hIcon=::   ExtractIcon(AfxGetInstanceHandle(),   
      _T(FilesName),0);     
      if   (hIcon   &&hIcon!=(HICON)-1)     
      return   hIcon;     
        
        
      //处理各种扩展名的类型   
      SHFILEINFO   shfi;   
      memset(&shfi,0,sizeof(shfi));     
      ::SHGetFileInfo(FilesName,   
      FILE_ATTRIBUTE_NORMAL,   
      &shfi,   
      sizeof(shfi),   
      SHGFI_ICON|SHGFI_USEFILEATTRIBUTES);   
      return   shfi.hIcon;     
      }  
      

  2.   

    一楼的方法可行的。
    可以看看msdn
    SHGetFileInfo的用法。
    或者到网上搜索一下。
    这个函数能够满足你要求。