在MFC中选择”浏览“按钮弹出对话框可以选择打开文件

才学这个什么都不懂。我想说的是:是不是在那个浏览的按钮函数里面写代码就可以了啊... 才学这个什么都不懂。
我想说的是:是不是在那个浏览的按钮函数里面写代码就可以了啊
展开
 我来答
匿名用户
2011-04-20
展开全部
中的代码复制过去就行了。

#include <wtypes.h>
#include <atlbase.h>
#include <shlobj.h>
#include <iostream>
using namespace std;

//显示文件夹浏览对话框
//用shell提供的SHBrowseForFolder,需要一个指向BROWSEINFO结构的指针

/* BROWSEINFO结构
HWND hwndOwner,指定对话框的父窗口的句柄
LPCITEMIDLIST pidlRoot,指定打开浏览的根目录,若为NULL,表示桌面
LPSTR pszDisplayName,指定一个缓冲区,接收用户选择的目录的显示名称
LPCSTR lpszTitle,树形视图上方显示的文字
UINT ulFlags,指定属性
BFFCALLBACK Lpfn,指定回调函数,发生某些事件时,指定的函数被调用,允许程序进一步定制对话框的行为
LPARAM lParam,若指定回调函数,参数值传递给回调函数
int iImage,代表用户选择的文件夹对象的图标在系统图标列表中的索引 */

int main()
{
BROWSEINFO bi;
::ZeroMemory(&bi,sizeof(bi)); //将bi结构清零

char szSelPath[MAX_PATH]; //被选择文件夹对象名称的缓冲区
bi.pszDisplayName=szSelPath;
LPITEMIDLIST pNetHoodIDL;
::SHGetSpecialFolderLocation(NULL,CSIDL_HISTORY,&pNetHoodIDL); //根文件夹为历史文件夹
bi.pidlRoot=pNetHoodIDL;
bi.lpszTitle="Luoguohui "; //提示字符串
bi.ulFlags=BIF_BROWSEINCLUDEFILES| //允许选择文件对象
BIF_EDITBOX| //显示编辑框
BIF_STATUSTEXT| //显示状态文本
BIF_VALIDATE; //校验编辑框中的输入

LPITEMIDLIST pidlSel=::SHBrowseForFolder(&bi); //打开文件夹浏览对话框
if(pidlSel!=NULL)
{
cout<<"Selected:"<<szSelPath<<endl;
CComPtr<IMalloc> pMalloc;
::SHGetMalloc(&pMalloc);
pMalloc->Free(pidlSel); //释放资源
}
return 0;
}
另外,虚机团上产品团购,超级便宜
明清实录
2011-04-18
知道答主
回答量:11
采纳率:0%
帮助的人:7.8万
展开全部
恩,是的,这就是MFC封装SDK的原因和简便
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式