Tree View Control系统自带的文件夹图标

/*
我的电脑{20D04FE0-3AEA-1069-A2D8-08002B30309D}
控制面板file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}
字体file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{D20EA4E1-3957-11d2-A40B-0C5020524152}
管理工具file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{D20EA4E1-3957-11d2-A40B-0C5020524153}
网上邻居file:///::{208D2C60-3AEA-1069-A2D7-08002B30309D}
任务计划file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}
回收站file:///::{645FF040-5081-101B-9F08-00AA002F954E}
我的文档file:///::{450D8FBA-AD25-11D0-98A8-0800361B1103}
网络号file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{992CFFA0-F557-101A-88EC-00DD010CCC48}
查找计算机 ::{208D2C60-3AEA-1069-A2D7-08002B30309D}  
打印机file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{2227A280-3AEA-1069-A2DE-08002B30309D}
mht {3050F3D9-98B5-11CF-BB82-00AA00BDCE0B}
html {3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}
图象文档 {02B01C80-E03D-101A-B294-00DD010F2BF9}
煤体剪辑 {0003000E-0000-0000-C000-000000000046}
声音 {0003000D-0000-0000-C000-000000000046}
midi音乐 {00022603-0000-0000-C000-000000000046}
视屏剪辑 {00022602-0000-0000-C000-000000000046}
写字板文档{73FDDC80-AEA9-101A-98A7-00AA00374959}
Internet Explorer {871C5380-42A0-1069-A2EA-08002B30309D}
bmp图象 {D3E34B21-9D75-101A-8C3D-00AA001A1652}
*/

//AddSpecialFolder("我的文档","::{450D8FBA-AD25-11D0-98A8-0800361B1103}");
//AddSpecialFolder("我的电脑","::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");
AddSpecialFolder("我的文档",CSIDL_PERSONAL);
AddSpecialFolder("桌面",CSIDL_DESKTOP);
AddSpecialFolder("我的电脑",CSIDL_DRIVES);

void CComboDrivers::AddSpecialFolder(CString strSpecialFolder, UINT nSpecialID)
{
int iIcon;
iIcon=GetIndexOfSpecialIcon(nSpecialID);
CString path=GetPathOfSpecialID(nSpecialID);

COMBOBOXEXITEM cbi;
cbi.mask=CBEIF_IMAGE|CBEIF_SELECTEDIMAGE|CBEIF_TEXT|CBEIF_INDENT;
int count=GetCount();
int item=(count>0)?count:0;
cbi.iItem=item;
cbi.pszText=(LPTSTR)(LPCTSTR)strSpecialFolder;
cbi.iImage=iIcon;
cbi.iSelectedImage=iIcon;
cbi.iIndent=0;
InsertItem(&cbi);
if(nSpecialID==CSIDL_SENDTO)
path="查找位置...";
else if(path!="" && path.Right(1)!='//')
path+="//";
m_PathList.InsertAt(item,path);
m_SpecialFolderCount=m_PathList.GetSize();
}

int CComboDrivers::GetIndexOfSpecialIcon(UINT uSpecialID)
{
ITEMIDLIST* pidlDeskTop;
SHGetSpecialFolderLocation( NULL, uSpecialID, &pidlDeskTop );
SHFILEINFO shFinfo = { 0 };
SHGetFileInfo((char*)pidlDeskTop,0,&shFinfo,sizeof(shFinfo),SHGFI_PIDL|SHGFI_SYSICONINDEX);
IMalloc* pMalloc;
if( SUCCEEDED( SHGetMalloc( &pMalloc ) ) )
{
pMalloc->Free( pidlDeskTop );
pMalloc->Release( );
}
int iIcon=shFinfo.iIcon;
return iIcon;
}

CString CComboDrivers::GetPathOfSpecialID(UINT nSpecialID)
{
LPITEMIDLIST pidl;
SHGetSpecialFolderLocation(NULL,nSpecialID ,&pidl);
char path[MAX_PATH];
SHGetPathFromIDList(pidl,path);
CString strPath=path;
if(strPath!="" && strPath.Right(1)!='//')
strPath+="//";
return strPath;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值