C++实现既能选择文件又能选择文件夹的弹出对话框

在一个项目中,要实现一个上传的功能,用户点击“上传”按钮,弹出对话框,能在对话框中选择想要上传的文件或者文件夹。但开发工具提供的对话框控件,一个只能选择文件、一个只能选择文件夹。

日系黑白漫画procreate笔刷ps网点爆炸效果对话框动星星素描排线
| 月销量100件
优惠价6.8元
原价¥6.8

淘口令:

¥2tAu2XhgUZO¥
 

如果我提供两个按钮,“上传文件”和“上传文件夹”,供用户选择,这样友好性差。

解决方案

需引入头文件:#include “Shlobj.h”

TCHAR szBuffer[MAX_PATH] = {0};
BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = NULL;
bi.pszDisplayName = szBuffer;
bi.lpszTitle = _T(“从下面选择文件或文件夹:”);
bi.ulFlags = BIF_BROWSEINCLUDEFILES;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if ( NULL == idl )
{
return;
}
SHGetPathFromIDList(idl,szBuffer);

上面的代码就可以打开一个选择文件夹对话框了;效果如下图:

选择文件或文件夹对话框

选择文件或文件夹对话框

尚未解决的问题

上面的代码实现的效果图可以看出,是在选择文件夹对话框的效果上添加了文件选择功能;目前还不知道如何弹出类似打开文件对话框的窗口效果,能够选择文件夹的。我准备自己写一个类似的图片[2]-C++实现既能选择文件又能选择文件夹的弹出对话框-cppku-C++库控件。

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片