2016 - 2024

感恩一路有你

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中显示出来。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。