MFC打开文件夹对话框
在BROWSEINFO中ulFlags中的,BIF_NEWDIALOGSTYLE表示开启文件对话框左下角的"新建文件夹"选项.
一个亲测有效的打开文件夹的例子:
void CFileDialogDemoDlg::OnBnClickedButtonImport() { // TODO: Add your control notification handler code here HWND hwnd= GetSafeHwnd(); //得到窗口句柄 CString filePath= TEXT(""); //得到文件路径 LPMALLOC pMalloc; if (::SHGetMalloc(&pMalloc) == NOERROR) //取得IMalloc分配器接口 { BROWSEINFO bi; TCHAR pszBuffer[MAX_PATH]; LPITEMIDLIST pidl; bi.hwndOwner = hwnd; bi.pidlRoot = NULL; bi.pszDisplayName = pszBuffer; bi.lpszTitle = _T("选择文件夹"); //选择目录对话框的上部分的标题 //添加新建文件夹按钮 BIF_NEWDIALOGSTYLE bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS | BIF_RETURNFSANCESTORS; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; if ((pidl = ::SHBrowseForFolder(&bi)) != NULL) //取得IMalloc分配器接口 { if (::SHGetPathFromIDList(pidl, pszBuffer)) //获得一个文件系统路径 { filePath = pszBuffer; } pMalloc->Free(pidl); //释放内存 MessageBox(filePath); } pMalloc->Release(); //释放接口 } }
新战场:https://blog.csdn.net/Stephen___Qin