MFC打开选择文件目录对话框且显示新建文件夹按钮
在MFC中,若要打开文件目录选择对话框,需要使用BROWSEINFO结构体,具体代码如下:
[php]
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);
}
}
[/php]
在代码中有一行
[php]
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
[/php]
这里的BIF_RETURNONLYFSDIRS表示若当前选择的目录不可用,则确定按钮为灰色,禁止操作,而BIF_NEWDIALOGSTYLE则表示显示新建文件夹按钮,可以在选择目录对话框中创建文件夹。