首页 > 代码库 > 使用CFileFind类查找文件并获取文件图标
使用CFileFind类查找文件并获取文件图标
以CListCtrl为例,使用CFileFind类查找文件并获取文件的图标填充到CListCtrl中
主要代码如下:
int CTestDlg::OnInitDialog(void) { //获取控件指针 CListCtrl* plst_ctl=(CListCtrl*)GetDlgItem(IDC_LIST1);//IDC_LIST1为CListCtrl控件的ID //添加图标(将图标存放在CImageList对象中,并与CListCrtl控件相关联) //m_imagelist_b.Create(32,32,ILC_COLOR32|ILC_MASK ,0,0);//大图标 m_imagelist_s.Create(16,16,ILC_COLOR32|ILC_MASK ,0,0);//小图标 //plst_ctl->SetImageList(&m_imagelist_b,LVSIL_NORMAL);//大图标 plst_ctl->SetImageList(&m_imagelist_s,LVSIL_SMALL); CFileFind findfile; //查找windows目录下的所有文件 int nfound=findfile.FindFile(L"C:\\Windows\\//*.*"); int i=0; while(nfound) { nfound=findfile.FindNextFile(); //如果为文件夹则跳过 if (findfile.IsDirectory()) { continue; } SHFILEINFO finfo; //获取文件信息,主要图标icon SHGetFileInfo(findfile.GetFilePath(),0,&finfo,sizeof(finfo),SHGFI_ICON ); //添加文件项目和图标 //m_imagelist_b.Add(finfo.hIcon);//向ImageList里添加图标资源 plst_ctl->InsertItem(i++,findfile.GetFileName(), m_imagelist_s.Add(finfo.hIcon)); } findfile.Close();//释放资源 return 0; }
运行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。