-
-
[求助]=.=得到SHGetFileInfo好多hIcon句柄……就是没用
-
发表于:
2008-10-18 07:05
8301
-
[求助]=.=得到SHGetFileInfo好多hIcon句柄……就是没用
如题……最近在做一个任务管理器……SHGetFileInfo好不容易得到hIcon的句柄了……可我却发现加到CListCtrl里的图标都显示不出来……咋回事啊……
那一部分的代码长成这个样……

希望大家赐教~~
SHFILEINFO shfi;
memset(&shfi,0,sizeof(shfi));
LONG lStyle = GetWindowLong(m_ProcessList.m_hWnd,GWL_STYLE);
::SetWindowLong(m_ProcessList.m_hWnd,GWL_STYLE,lStyle|LVS_SHAREIMAGELISTS);
SHGetFileInfo(TempPath, 0, &shfi, sizeof(shfi), SHGFI_SYSICONINDEX|SHGFI_LARGEICON);
if(shfi.hIcon!=NULL)
{
imlist.Add(::AfxGetApp()->LoadIcon(IDI_ICON1));
}
else
{
imlist.Add(shfi.hIcon);
}
lvitemAdd.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvitemAdd.iItem = i ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText =pe.szExeFile;
lvitemAdd.iImage = i;
m_ProcessList.SetItem(&lvitemAdd);
用frozenrain的方法每次返回都是这个样
用OD跟踪发现每次都返回这个
山寨IceSword的代码也试过,我奇怪的就是别的程序用SHGetFileInfo就可以,可是到了我的程序就不行了……

Barend和weolar的方法出来以后都是

这个样子
莫非和我的声明有关?
m_ProcessList.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES);
[培训]科锐逆向工程师培训第53期2025年7月8日开班!