如何在XP下获取系统图象列表(高手们帮忙啊!)
下面这段代码在98下可以得到系统图象列表,但是到类XP下只能得到5个图标(文件夹、硬盘、快洁方式和未知文件的图标),请高手指教:
CImageList m_smallImageList;
CImageList m_largeImageList;
void CSystemListCtrl::InitializeSystemImageList()
{
//建立图象列表
HIMAGELIST hSystemSmallImageList, hSystemLargeImageList;
SHFILEINFO ssfi, lsfi;
hSystemSmallImageList = (HIMAGELIST)SHGetFileInfo( (LPCTSTR)_T("C:\\"), 0,&ssfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
m_smallImageList.Attach(hSystemSmallImageList);
hSystemLargeImageList = (HIMAGELIST)SHGetFileInfo( (LPCTSTR)_T("C:\\"),
0, &lsfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_ICON);
m_largeImageList.Attach(hSystemLargeImageList);
SetImageList(&m_smallImageList, LVSIL_SMALL);
SetImageList(&m_largeImageList, LVSIL_NORMAL);
问题点数:0、回复次数:1Top
1 楼stanly20000(stanly20000)回复于 2003-12-01 22:43:05 得分 0
SHFILEINFO sfi;
HIMAGELIST himlSmall = (HIMAGELIST)::SHGetFileInfo( _T("C:\\"), 0, &sfi,
sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
HIMAGELIST himlLarge = (HIMAGELIST)::SHGetFileInfo( _T("C:\\"), 0, &sfi,
sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_LARGEICON );
if (himlSmall && himlLarge)
{
SetImageList(CImageList::FromHandle(himlSmall), LVSIL_SMALL);
SetImageList(CImageList::FromHandle(himlLarge), LVSIL_NORMAL);
return TRUE;
}
Top




