hur.cn - 华软网

 热门搜索

求助,关于SHGetFileInfo获取图标显示在CListCtrl控件里面的问题

  作者:未知    来源:网络    更新时间:2011/1/15
鉴于VC2005 MFC对话框工程,

//定义全局变量
CImageList m_imagelist;

//在OnInitDialog里面增加以下代码
m_imagelist.Create(16, 16, ILC_COLOR32 | ILC_MASK, 2, 1);
m_list.SetImageList(&m_imagelist, LVSIL_SMALL);

//显示代码
void CShowIcoDlg::show(void)
{
DWORD dwQQ = GetProcessIdByName(L"QQ.exe");
DWORD dwExplorer= GetProcessIdByName(L"explorer.exe");
CString strQQPath = GetProcPath(dwQQ);
CString strExplorerPath = GetProcPath(dwExplorer);

SHFILEINFO sfi;
ZeroMemory(&sfi,sizeof(SHFILEINFO));

SHGetFileInfo(strQQPath,0,&sfi,sizeof(SHFILEINFO),SHGFI_ICON);
HICON hSmallIco = sfi.hIcon;
int i = m_imagelist.Add(hSmallIco);
m_list.InsertItem(i,L"QQ.EXE");
m_list.SetItemText(i,1,strQQPath);
DestroyIcon(hSmallIco);

ZeroMemory(&sfi,sizeof(SHFILEINFO));
SHGetFileInfo(strExplorerPath,0,&sfi,sizeof(SHFILEINFO),SHGFI_ICON);
HICON hFFIco = sfi.hIcon;
int j = m_imagelist.Add(hFFIco);
m_list.InsertItem(j,L"Explorer.EXE");
m_list.SetItemText(j,1,strExplorerPath);
DestroyIcon(hFFIco);
}


---华软 网友回答---
int InsertItem(
   int nItem,
   LPCTSTR lpszItem,
   int nImage 
);
第三个是设置图标的
m_list.InsertItem(j,L"Explorer.EXE");

改成
m_list.InsertItem(j,L"Explorer.EXE",j);这样子呢
---华软网友回复---
结贴,2楼正解      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。