MFC应用实例:选择文件夹对话框
浏览量:2601
时间:2024-01-13 17:54:06
作者:采采
在这个MFC应用实例中,我们将展示如何在程序中添加选择文件夹对话框,并让用户选择电脑中的文件夹。
新建一个基于对话框的应用程序
首先,我们需要新建一个基于对话框的应用程序,将其命名为OpenDir。
设计对话框
接下来,我们需要对对话框进行设计。在对话框上添加一个按钮,命名为“打开文件夹”,并将其与对应的响应函数关联。
添加响应函数
在“打开文件夹”按钮的响应函数OnButtonOpendir()中,我们添加以下代码:
#define BIF_NEWDIALOGSTYLE 0x0040 void 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; NULL; pszBuffer; bi.lpszTitle _T("选择文件夹"); //选择目录对话框的上部分的标题 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(); //释放接口 } }
运行程序
现在,我们可以运行程序了。点击“打开文件夹”按钮后,将会弹出一个选择文件夹的对话框。
选择文件夹
在对话框中,用户可以浏览电脑中的文件夹,并选择一个文件夹。选择完成后,选择的文件夹路径将会在MessageBox中显示出来。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。