2 ssf010201 ssf010201 于 2016.03.08 15:38 提问

ListCtrl 显示文件详细的时候图标不显示

初始化内容:

第一种写法

//这样子列表的图标不显示

m_ImageList.Create(16, 16, ILC_COLOR32, 10, 30);
m_ListView.SetImageList(&m_ImageList,LVSIL_NORMAL);

m_ListView.InsertColumn(0,_T("000"),LVCFMT_LEFT,160, 50);
m_ListView.InsertColumn(1,_T("1111"),LVCFMT_LEFT,100, 50);
m_ListView.InsertColumn(2,_T("2222"),LVCFMT_LEFT,80, 50);

m_ListView.InsertColumn(3,_T("333"),LVCFMT_LEFT,50, 50);
m_ListView.ModifyStyle(0, LVS_REPORT | LVS_SHOWSELALWAYS);
m_ListView.SetExtendedStyle(LVS_EX_SUBITEMIMAGES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);

第二种写法

//这样子写初始化的图标会显示

m_ImageList.Create(32, 32, ILC_COLOR32, 10, 30);
m_ListView.SetImageList(&m_ImageList,LVSIL_NORMAL);
m_ListView.ModifyStyle(0, LVS_ALIGNTOP); m_ListView.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);

这是两种显示布局,一种是大图标的,大图标是正常显示的,

而如果我换成列表的话就没有办法显示系统相对应的图标,只能显示文件名。

//==============================================================//

//同时读取文件和文件夹

if(!file.IsDots())

{

SHFILEINFO info;
CString temp = str;
int index = temp.Find(_T("*.*"));
temp.Delete(index,3);
CString wStr;
wStr = temp + file.GetFileName();
SHGetFileInfo(wStr, 0, &info,sizeof(&info), SHGFI_DISPLAYNAME | SHGFI_ICON);
int i = m_ImageList.Add(info.hIcon);
m_ListView.InsertItem(i,info.szDisplayName,i);

}
图片说明
图片说明

2个回答

ssf010201
ssf010201   2016.03.08 15:39

自己顶下,求求大家帮忙下。。

caozhy
caozhy   Ds   Rxr 2016.03.08 15:46
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在listctrl中显示文件名和图标
<br />/// 向控制框插入文件名 int COPWILL_FileDialog::InsertFileList( CString szFilePath, BOOL bIsDirectory ) { ASSERT( szFilePath.GetLength()!=0 ); int nIcon = GetIconIndex( szFilePath, bIsDirectory ); CString szFileName; // 是否需要隐藏扩展名 if ( m_bExtendNa
MFC 在ListCtrl控件中插入图标
上篇博文中,写了一遍关于ListCtrl控件的基本用法和引用两个重绘类进行一些美化。 今天的项目中,需要用到在控件中插入图标作为状态显示用,于是网上查找了一些资料,将方法记录下来: 先看效果图: 图片没有找到好看的大家见谅,实现的功能是根据运行状态,显示不同的图标表示运行状态和停止状态两种。 实施方法如下: 首先是添加一个listCtrl控件和添加变量,这就不说了。 1、然
修复TortoiseGit文件夹和文件状态图标不显示问题
在此感谢原创博主~~转载来自:点击打开链接 一. 运行环境: 操作系统 Windows 10 64bit TortoiseGit (2.2.0.0) 64bit msysgit(2.9.2.1) 64bit注意:请确保环境正确,软件的位数相匹配。 二. 使用Git管理项目 首先在硬盘中新建一个文件夹叫“test”,打开它;单击右键并选择 “Git Create reposit
ListCtrl显示不同类型文件图标
    这几天特别的累,发现自己有那么多的东西都不会,很多的时候真的是想放弃,很多的时候也是被打击的快要失去了信心,不过还好,我没有,我还是每天都充满了希望,我相信每天都会有新的收获。    不过说实话,我发现自己的学习能力真的很强,我对套接字其实根本没有研究,但是做这个项目,还是要用到套接字,本来这个工程的通信不是归我管,但是后来出现了问题,还是落到了我的头上。还好,一个晚上的时间,我就完成了任
eclipse 中查看文件时,文件后面的 版本号 、 文件的状态图标 等等都不见问题解决
打开 : windows ->preferences->General->Appearance->Lable Decorations  勾选其中的 SVN 项即可。
CListCtrl控件图标显示和动态更换实现
由于要在OCX中使用CListCtrl控件,在MFC中的控件属性和方法都不能用,只能老老实实的用消息和宏来实现这个控件的各个功能,所以着实费了点手脚。、     首先将一个CListCtrl控件放入界面中,获得它的句柄以便以后操作这个控件:HWND m_hFileList =
如何在ListCtrl中显示不同的图片
使用范围: 1.如果你想list的不同item前面都是不一样的图片,可以用这个方法(这个方法是Icon模式,其它模式需要自己稍微修改一下就行,类似的) 2.用list来显示图片(这个只支持Icon模式)效果如图: 其中图片下面的数字就是每个item的text,可以不要也可以要.步骤如下: 1.添加资源(我添加的是位图资源) 这一步骤前面有文章已经说过,这里不再详细说了.2.右键单击list
wxPython 的 ListCtrl 控件的列表模式和小图标模式下各项目行距调整
wxPython的ListCtrl控件在列表模式和小图标模式下,各行是紧挨着的,非常难看,翻了半天手册,也没发现有什么方法可以调整。倒是有个SetColumnWidth方法可以调整各列的宽度(在列表模式或小图标模式下,col参数设为-1就行了,可以用来调整小图标模式和列表模式的宽度),但是没有什么方法可以调整行距,要是有SetRowHeight方法就好了。想来想去,突然想出了一个"绝招"解决问题了
MFC读取txt,分割显示到listctrl控件上
MFC读取txt,分割显示到listctrl控件上,
在LISTCTRL中显示指定文件夹里的所有文件
 CImageList m_ImageList; m_ImageList.Create(32,32,ILC_COLOR32,10,30); m_list1.SetImageList(&m_ImageList,LVSIL_NORMAL); m_list1为控制变量对应相应的LISTCTRL 在消息函数中添加如下代码: m_list1.DeleteAllItems(); CString str="E: