listctrl加入图标

 1 m_listctrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_SMALLICON);
 2     LONG lStyle;
 3     lStyle = GetWindowLong(m_listctrl.m_hWnd, GWL_STYLE);//获取当前窗口style
 4     lStyle &= ~LVS_TYPEMASK; //清除显示方式位
 5     lStyle |= LVS_REPORT; //设置style
 6     SetWindowLong(m_listctrl.m_hWnd, GWL_STYLE, lStyle);//设置style
 7 
 8 
 9     m_image.Create(16,16,TRUE|ILC_COLOR32,4,4);//创建图像形式
10     m_listctrl.SetImageList(&m_image,LVSIL_SMALL); //listcontrol关联图像
11     m_listctrl.InsertColumn(0,_T("文件名"),LVCFMT_CENTER,500);

listctrl的初始化并和cimage对象绑定。cimage对象必须为全局或者是类数据成员。

 1 UINT __stdcall ShowFunc(LPVOID p)
 2 {
 3     CGetFileICONDlg *dlg = (CGetFileICONDlg*) p;
 4     while(1)
 5     {
 6         WaitForSingleObject(dlg->hevent,INFINITE);
 7         dlg->ClearList();
 8         map<pair<CString,CString>,HICON>::iterator iter = dlg->m_fileinfo.begin();
 9         int i = 0;
10         while(iter != dlg->m_fileinfo.end())
11         {
12             if(dlg->isFirst)
13             {
14                 dlg->isFirst = FALSE;
15             }
16             else
17             {
18                 dlg->m_image.Remove(0);
19             }
20             dlg->m_image.Add(iter->second);//增加图像。
21             dlg->m_listctrl.InsertItem(i,_T(""));
22             LVITEM lvItem;
23             lvItem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
24             lvItem.iImage = i;//图像在image里面的下标
25             dlg->m_listctrl.InsertItem(&lvItem);
26             dlg->m_listctrl.SetItemText(i,0,iter->first.first);
27 
28             iter++;
29             i++;
30         }
31         ResetEvent(dlg->hevent);
32     }
33     return 0;
34 }

//将图标显示到listctrl中

1 HICON CGetFileICONDlg::GetFileICON(CString strFilePath)
2 {
3     SHFILEINFO stFileInfo;
4     :: SHGetFileInfo(strFilePath, 0, &stFileInfo, sizeof(stFileInfo), SHGFI_ICON);
5     return stFileInfo.hIcon;
6 }

得到文件的图标

转载于:https://www.cnblogs.com/longcheng2012/archive/2012/11/06/2756944.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值