MFC的LIST Control显示图标问题
使用List Control显示多个.ico的图标,如何将图标处理为灰色?
首先是取到Icon文件夹下的图标文件,如果不存在,则获取exe文件的图标。
对图标文件处理如下:
CFileFind *fileFind=new CFileFind();
CString str;
SHFILEINFO sfi;
m_imageList.Create(GetSystemMetrics(SM_CXICON),
GetSystemMetrics(SM_CYICON),ILC_COLOR24,50,50);
m_List.SetImageList(&m_imageList,LVSIL_NORMAL);
if(lsInfo.xmlNum>0)
{
int i=0;
BOOL res=fileFind->FindFile("Icon//*.*");
while(i<lsInfo.xmlNum)
{
str.Format("Icon//%s.*",lsInfo.lsXmlInfo[i].AppName);
res=fileFind->FindFile(str);
if(!res)
{
str.Format("%s",lsInfo.lsXmlInfo[i].AppPath);
res=fileFind->FindFile(str);
}
res=fileFind->FindNextFile();
SHGetFileInfo(fileFind->GetFilePath(),0,
&sfi,sizeof(sfi),SHGFI_ICON);
m_imageList.Add(sfi.hIcon);
m_List.InsertItem(i,lsInfo.lsXmlInfo[i].AppName,i);
//m_List.InsertItem(i,fileFind->GetFileName(),i);
i++;
}
}
if(fileFind)
{
delete fileFind;
}