弹出选择文件夹的对话框 BROWSEINFO 的用法【MFC】

以下是在vs2008中编译通过的代码,代码注释详细。要实现的功能是点击“浏览”按钮,即弹出选择文件夹的对话框。并将选择的文件夹或文件路径显示在MessageBox中。

void CMFC_TrojanKillerDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	BROWSEINFO bi;	                   //BROWSEINFO结构有很多成员参数可以自己设置
	ZeroMemory(&bi,sizeof(BROWSEINFO));     //将以&bi为起始地址,大小为sizeof(BROWSEINFO)的内存区域用0填充
	//bi.ulFlags=BIF_BROWSEINCLUDEFILES;        //设置弹出的对话框属性。此处意思为包含文件。如果不设这个值,默认的是只有文件夹。ulFlags还可以定义很多别的属性
	//bi.ulFlags=BIF_NEWDIALOGSTYLE;            //窗口可以调整大小,有新建文件夹按钮
	//bi.lpszTitle=L"指定要处理的文件夹";       //在窗口内显示提示用户的语句
	LPITEMIDLIST pidl = SHBrowseForFolder(&bi);   //Displays a dialog box enabling the user to select a Shell folder.
	TCHAR * path = new TCHAR[MAX_PATH];
	if(pidl != NULL)
	{
		SHGetPathFromIDList(pidl,path);      //Converts an item identifier list to a file system path
		MessageBox(path);
	}
}
显示文件夹窗口默认显示效果:

加上语句bi.ulFlags=BIF_BROWSEINCLUDEFILES;后不仅可以显示文件夹,还可以显示文件:


加上语句bi.ulFlags=BIF_NEWDIALOGSTYLE;后窗口可以调整大小,并有新建文件夹按钮:


加上语句bi.lpszTitle=L"指定要处理的文件夹"; 后在窗口内显示提示用户的语句:


随意选择一个文件,弹出MessageBox显示文件全路径:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值