MFC CTreeCtrl运用

时间:2023-03-09 08:07:21
MFC   CTreeCtrl运用
CTreeCtrl运用
删除无效资源
递归的运用
自写遍历目录函数
递归遍历所有子目录 一、删除无效资源
、打开资源文件
、找到无效链接删掉
二、自写遍历目录函数
CFileFind findfile;
int nfound=findfile.FindFile(dirpath); while(nfound)//遍历文件
{
nfound=findfile.FindNextFile();
}
三、递归遍历所有子目录
int FindAll()
{
CFileFind findfile;
int nfound=findfile.FindFile(dirpath); while(nfound)//遍历文件
{
nfound=findfile.FindNextFile();
FindAll();
}
} //代码示例
//dirpath L"C:\\Windows\\SYSTEM32\\"
int CDialog_TreeCtrl_Test::findAll(CString dirpath,HTREEITEM parentItem)
{ static int j=;
dirpath+=L"//*.*";
//遍历D盘目录
CTreeCtrl* ptree=(CTreeCtrl*)GetDlgItem(IDC_TREE1); CFileFind findfile;
int nfound=findfile.FindFile(dirpath); while(nfound)//遍历文件
{
nfound=findfile.FindNextFile();
////递归调用
WCHAR ws[]=L"";
wcscpy(ws,findfile.GetFilePath().GetString()); if (findfile.IsDots())
{ continue; }
if (findfile.IsDirectory())
{ //添加数据和图标
SHFILEINFO finfo;
SHGetFileInfo(findfile.GetFilePath(),,&finfo,sizeof(finfo),SHGFI_ICON |SHGFI_TYPENAME );
//添加文件项目和图标
HTREEITEM hitem=ptree->InsertItem(findfile.GetFileName(),imagesmall.Add(finfo.hIcon) ,,parentItem);
//递归调用
findAll(findfile.GetFilePath(),hitem); } }