MFC 选择文件夹
2024-08-23 20:42:21
WCHAR szPath[_MAX_PATH] = {};
BROWSEINFO bi;
//指定父窗口,在对话框显示期间,父窗口将被禁用
bi.hwndOwner = this->GetSafeHwnd();
//如果指定NULL,就以“桌面”为根
bi.pidlRoot = NULL;
//这一行将显示在对话框的顶端
bi.lpszTitle = _T("请选择一个文件夹");
bi.pszDisplayName = szPath;
//只返回文件系统中存在的文件夹
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;//回调函数的指针
bi.lParam = NULL;//传向回调函数的参数 //现在,调用函数来显示对话框
//它总与Windows的外壳程序Explorer保持相同的外观
LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi); if(pItemIDList){//点按了“确定”按钮
vFiles.clear();
TCHAR szPath[_MAX_PATH];
if (SHGetPathFromIDList(pItemIDList, szPath)){
EnumFiles(szPath, vFiles);
}
//防止内存泄漏,要使用IMalloc接口
IMalloc* pMalloc;
if (SHGetMalloc(&pMalloc) != NOERROR){
// 未返回有效的IMalloc接口指针
TRACE(_T("无法取得外壳程序的IMalloc接口\n"));
}
pMalloc->Free(pItemIDList);
if(pMalloc){
pMalloc->Release();
}
}
最新文章
- 三角剖分求多边形面积的交 HDU3060
- PAT-乙级-1048. 数字加密(20)
- java下实现调用oracle的存储过程和函数
- AFNetworking自带的解析图片的方法
- 2013.5.A
- Lucene实现索引和查询
- 使用 mysql PDO 防止sql注入
- Codeforces Round #407 (Div. 1)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十一)
- Java多线程-线程池ThreadPoolExecutor构造方法和规则
- 理解ActivityManagerService
- Spark_RDD之RDD基础
- Java 8 Optional类深度解析(转载)
- ajax 406 Not Acceptable
- Git密钥生成步骤SSH Key
- 推荐C#网站、书籍、资源
- AtCoder Beginner Contest 022 A.Best Body 水题
- vue如何循环同一个echarts图表
- 摄影之HDR
- list推导式,dict推导式,set推导式