MFC应用实例:[26]选择文件夹对话框

2025-10-28 09:09:50

1、新建一个基于对话框的应用程序,应用程序名称为OpenDir。

MFC应用实例:[26]选择文件夹对话框

2、对对话框进行如下图的设计添加“打开文件夹”按钮,并对这个按钮添加对应的响应函数。

MFC应用实例:[26]选择文件夹对话框

3、在“打开文件夹”按钮的函数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;

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]选择文件夹对话框

4、程序运行如下:

MFC应用实例:[26]选择文件夹对话框

5、打开一个文件夹后如图:

MFC应用实例:[26]选择文件夹对话框

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢