新建一个基于对话框的MFC应用程序BrowseFolderDialogTest,删除对话框中原有控件。
添加一个按钮“显示文件夹选择对话框”,添加按钮的单击事件函数代码如下:
void CBrowseFolderDialogTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
BROWSEINFO BrowInfo;
TCHAR csFolder[MAX_PATH] = {0};
memset(&BrowInfo,0,sizeof(BROWSEINFO));
BrowInfo.hwndOwner = m_hWnd;
BrowInfo.pszDisplayName = csFolder;
BrowInfo.lpszTitle = _T("请选择路径");
BrowInfo.ulFlags = BIF_EDITBOX;
ITEMIDLIST *pitem = SHBrowseForFolder(&BrowInfo);
if (pitem)
{
SHGetPathFromIDList(pitem,csFolder); //把所选的内容转换成路径字符串
CString str;
str.Format(_T("你选择的路径是:%s"), csFolder);
AfxMessageBox(str);
}
}
保存并运行工程,结果如下图所示: