MFC应用实例:[26]选择文件夹对话框
1、新建一个基于对话框的应用程序,应用程序名称为OpenDir。
![MFC应用实例:[26]选择文件夹对话框](https://exp-picture.cdn.bcebos.com/01bd69f7980e5f204ec7a668bd20b93acc898e09.jpg)
3、在“打开文件夹”按钮的函数OnButtonOpendir()中添加一下代码:#de酆璁冻嘌fine BIF_NEWDI帆歌达缒ALOGSTYLE 0x0040void COpenDirDlg::OnButtonOpendir() //打开目录{ HWND hwnd= GetSafeHwnd(); //得到窗口句柄 CString filePath= ""; //得到文件路径 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(); //释放接口 }}
![MFC应用实例:[26]选择文件夹对话框](https://exp-picture.cdn.bcebos.com/dccb47de4507880121c62cf2b18ca608a40f8209.jpg)
5、打开一个文件夹后如图:
![MFC应用实例:[26]选择文件夹对话框](https://exp-picture.cdn.bcebos.com/a44e8afc508c9bcee64e73c4d6dd884ce44afa09.jpg)