MFC打开选择文件目录对话框且显示新建文件夹按钮
在MFC中,若要打开文件目录选择对话框,需要使用BROWSEINFO结构体,具体代码如下:
void CBatchConvert::OnBrowseOutDir() { // TODO: 在此添加控件通知处理程序代码 char szPath[MAX_PATH]; //存放选择的目录路径 memset(szPath, 0, sizeof(szPath)); BROWSEINFO bi; bi.hwndOwner = m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = (LPWSTR)szPath; bi.lpszTitle = _T("请选择转换后的文件输出目录:"); bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; //弹出选择目录对话框 LPITEMIDLIST lp = SHBrowseForFolder(&bi); if(lp && SHGetPathFromIDList(lp, (LPWSTR)szPath)) { CString strOutDir; strOutDir.Format(_T("%s"), szPath); AfxMessageBox(strOutDir); } }
在代码中有一行
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
这里的BIF_RETURNONLYFSDIRS表示若当前选择的目录不可用,则确定按钮为灰色,禁止操作,而BIF_NEWDIALOGSTYLE则表示显示新建文件夹按钮,可以在选择目录对话框中创建文件夹。