在windows系统下,当我们打开某个磁盘时,总会显示所有的文件,包括文件名和文件图标,采用VC的列表视图控件可以实现读取指定路径下的文件,并显示所有文件的文件名和文件图标。先上效果图:

接下来是具体实现:
1.创建一个对话框,并在对话框中加入一个列表视图控件,控件样式是ICON,控件关联一个变量m_ListCtrl.
2.创建CImageList类,并设定列表视图控件的图象列表,示例代码如下:
- m_Image.Create(GetSystemMetrics(SM_CXICON),
- GetSystemMetrics(SM_CYICON),ILC_COLOR24,50,50);
- m_ListCtrl.SetImageList(&m_Image,LVSIL_NORMAL);
3.采用CFileFind类查找文件的同时,用API函数SHGetFileInfo获取文件的图标,并存放到CImageList类中,再用CListCtrl类的成员方法InsertItem把文件名和文件图标一起插入,示例代码如下:
- SHFILEINFO sfi;
- CFileFind* fileFind=new CFileFind();
- BOOL res = fileFind->FindFile("d://程序//*.*");
- int i=0;
- while(res)
- {
- res = fileFind->FindNextFile();
- if(fileFind->IsDirectory())
- continue;
- SHGetFileInfo(fileFind->GetFilePath(),0,
- &sfi,sizeof(sfi),SHGFI_ICON);
- m_Image.Add(sfi.hIcon);
- m_ListCtrl.InsertItem(i, fileFind->GetFileName(), i);
- i++;
- }
好了,我的第一篇笔记完成了,希望大家能够多多支持!
本文介绍了如何在Windows环境下,利用VC的列表视图控件(CListCtrl)读取指定路径下的文件,并展示文件名及图标。通过创建CImageList对象设置图象列表,结合CFileFind和SHGetFileInfo API函数,实现遍历文件、获取图标并插入列表视图中。示例代码展示了具体实现步骤。

3351

被折叠的 条评论
为什么被折叠?



