MFC应用实例:选择文件夹对话框
在这个MFC应用实例中,我们将展示如何在程序中添加选择文件夹对话框,并让用户选择电脑中的文件夹。 新建一个基于对话框的应用程序 首先,我们需要新建一个基于对话框的应用程序,将其命名为OpenDir
在这个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中显示出来。