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

来源:互联网 发布:煮糊了网络联机 编辑:程序博客网 时间:2024/05/14 05:40

在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"指定要处理的文件夹"; 后在窗口内显示提示用户的语句:


0 0