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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!