CListCtrl中加载icon(立即结分) report类型的CListCtrl控件,里面的内容就是一个个文件的文件名,如何加载各文件的图标,使其效果就像Windows的资源管理器一样,把图标的文件名一起显示。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.vckbase.com/document/viewdoc/?id=836 http://www.codeguru.com/Cpp/controls/listbox/article.php/c4749/ http://www.vccode.com/file_show.php?id=21http://www.vccode.com/file_show.php?id=464#xx1002xx vcleaner(??.......) 给的例子不错但是我下载原码总不成功,谁能给我发一份,谢谢[email protected] SHFILEINFO sfi;ZeroMemory(&sfi, sizeof(SHFILEINFO));HIMAGELIST hImg = (HIMAGELIST)SHGetFileInfo("C:\\", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);DestroyIcon(sfi.hIcon); // get system imagelist handleCImageList ImgList;ImgList.m_hImageList = hImg;m_ListCtrl.SetImageList(&ImgList, LVSIL_SMALL);ImgList.Detach(); // 设置列表控件的ImageList// 假设想得到某个文件图标,这儿我以WinNT目录为例SHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);iIcon = sfi.iIcon;DestroyIcon(sfi.hIcon); // 普通 iconSHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_OPENICON | SHGFI_ICON | SHGFI_SMALLICON); // 选中时的icon ,//此处用不到,树控件需要设置选中时iIconSel和未选中时iIcon 2种图标iIconSel = sfi.iIcon;DestroyIcon(sfi.hIcon);m_ListCtrl.InsertItem(xx, xx, iIcon);//图标为闭合文件夹m_ListCtrl.InsertItem(xx, xx, iIconSel);//图标为打开文件夹具体解释看MSDN SHGetFileInfo() 照大家说的,我用SHFILEINFO info;SHGetFileInfo(clsFindfile.GetFilePath(),0,&info,sizeof(&info),SHGFI_DISPLAYNAME | SHGFI_ICON);int i = m_ImageList.Add(info.hIcon);m_lst_file.InsertItem(i,info.szDisplayName,i);基本可以实现功能。但是这是显示的icon类型的如果我要以report类型来显示图标和文件名应该怎么样呢? m_ImageList.Create(32,32,ILC_COLOR32,10,30);m_lst.SetImageList(&m_ImageList,LVSIL_SMALL); SetImageList然后insertItem(X,X,0)就是无法显示图标是为啥 我也出现过这种问题,试试把icon改小点。m_ImageList.Create(16,16,ILC_COLOR16,0,4);m_cList.InsertItem(i,m_strName,0); 关于多项式拟合?怎么做? 什么API会让System占用CPU升高? VC如何制作可动态编辑注册表的安装包 . 如何编写一程序,测试网站的性能? 如何调整弹出窗口的位置?(或许很可笑,可是我真的不知道) 如何在多线程中操作数据库?高分请教 关于遗传算法(GA) PE格式的资料你有吗? !!!!!!关于COM库和进程外组件!!!!!! vc++ 我晕呀 写的真的好呀 关于菜单
http://www.vccode.com/file_show.php?id=464#xx1002xx
但是我下载原码总不成功,谁能给我发一份,谢谢[email protected]
ZeroMemory(&sfi, sizeof(SHFILEINFO));
HIMAGELIST hImg = (HIMAGELIST)SHGetFileInfo("C:\\", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);
DestroyIcon(sfi.hIcon); // get system imagelist handle
CImageList ImgList;
ImgList.m_hImageList = hImg;
m_ListCtrl.SetImageList(&ImgList, LVSIL_SMALL);
ImgList.Detach(); // 设置列表控件的ImageList
// 假设想得到某个文件图标,这儿我以WinNT目录为例
SHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON | SHGFI_SYSICONINDEX);
iIcon = sfi.iIcon;
DestroyIcon(sfi.hIcon); // 普通 icon
SHGetFileInfo("C:\\WinNT", 0, &sfi, sizeof(SHFILEINFO), SHGFI_OPENICON | SHGFI_ICON | SHGFI_SMALLICON); // 选中时的icon ,
//此处用不到,树控件需要设置选中时iIconSel和未选中时iIcon 2种图标
iIconSel = sfi.iIcon;
DestroyIcon(sfi.hIcon);
m_ListCtrl.InsertItem(xx, xx, iIcon);//图标为闭合文件夹
m_ListCtrl.InsertItem(xx, xx, iIconSel);//图标为打开文件夹
具体解释看MSDN SHGetFileInfo()
SHFILEINFO info;
SHGetFileInfo(clsFindfile.GetFilePath(),0,&info,sizeof(&info),SHGFI_DISPLAYNAME | SHGFI_ICON);
int i = m_ImageList.Add(info.hIcon);
m_lst_file.InsertItem(i,info.szDisplayName,i);基本可以实现功能。但是这是显示的icon类型的如果我要以report类型来显示图标和文件名应该怎么样呢?
m_lst.SetImageList(&m_ImageList,LVSIL_SMALL);
m_ImageList.Create(16,16,ILC_COLOR16,0,4);
m_cList.InsertItem(i,m_strName,0);