首页 > 编程语言 > 详细

MFC打开文件夹对话框

时间:2020-03-08 20:59:08      阅读:76      评论:0      收藏:0      [点我收藏+]

在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(); //释放接口
        }
}

MFC打开文件夹对话框

原文:https://www.cnblogs.com/Stephen-Qin/p/12444279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!