您的位置:首页 > 其它

MFC中弹出选择文件夹的对话框 BROWSEINFO 的用法

2017-01-03 10:44 1346 查看
在MFC中有时候只需要选择一个文件夹而不需要选择文件,这时候可以通过下列方式来进行选择

void CXXXDlg::OnGetDirectory
{
//以下为打开文件夹对话框并选择文件夹路径
BROWSEINFO bi;
char Buffer[MAX_PATH];//初始化入口参数bi开始
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;//初始化制定的root目录很不容易,
bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框
bi.lpszTitle = "请选择包含矿区Shp文件的文件夹";
bi.ulFlags = BIF_BROWSEINCLUDEFILES;//包括文件
bi.ulFlags = BIF_EDITBOX;//包括文件
bi.ulFlags= BIF_NEWDIALOGSTYLE;//可调整大小,有新建文件夹
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;//初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);//取得文件夹路径到Buffer里
sFolderPath = Buffer;//将路径保存在一个CString对象里
}
// AfxMessageBox(sFolderPath);
//以上为打开文件夹对话框并选择文件夹路径

}
显示文件夹窗口默认显示效果:



加上语句bi.ulFlags=BIF_BROWSEINCLUDEFILES;后不仅可以显示文件夹,还可以显示文件:



加上语句bi.ulFlags=BIF_NEWDIALOGSTYLE;后窗口可以调整大小,并有新建文件夹按钮:



加上语句bi.lpszTitle=L"指定要处理的文件夹";
后在窗口内显示提示用户的语句:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: