使用XP风格的打开文件对话框

本文介绍如何在MFC开发环境下实现带有XP风格的文件对话框,包括使用新样式对话框的具体步骤和代码示例。此方法能够使用户界面更加现代化且易于使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用MFC开发时,MFC提供的CFileDialg类进行选择文件时,打开的对话框是98风格的,新的XP风格左边有一个包含”我的电脑”"我的文档”等的快捷选项,用起来比较方便.使用下面的代码可以实现在使用MFC进行开发时使用XP风格的打开文件对话框:

CString OpenFileXPStyle()
{
// TODO: Add your control notification handler code here
char name[4096];
name[0] = '';
OPENFILENAME ofn;
memset( &ofn, 0, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = m_hWnd;
ofn.lpstrFilter = "文本文件(*.txt)*.txt";
ofn.nFilterIndex = 1;
ofn.lpstrFile = name;
ofn.nMaxFile = 4096;
ofn.lpstrTitle = "选择文件";
ofn.Flags = OFN_CREATEPROMPT|OFN_ENABLESIZING|OFN_HIDEREADONLY;
CString file_path;
if( ::GetOpenFileName( &ofn ) )
{
file_path = ofn.lpstrFile; //打开的文件名
}
return file_path;
}

CFileDialog内部其实也是调用GetOpenFileName来打开文件对话框.OPENFILENAME的第一个字段指定该结构的大小.Windows的GetOpenFileName函数通过OPENFILENAME的大小来判断是使用新风格还是使用老风格.
在2000和XP中,OPENFILENAME结构新增加了数据成员.如果用的是老版本的windows头文件,编译的时候便是原来的结构大小,如果是win2000以后的头文件,使用的结构的大小就变大了.而MFC不知道新的结构成员的存在,所以MFC程序编译时,size还是老的大小,打开的还是老式的对话框.

 

本文为此文的备份: http://fclose.com/b/programming/168/

转载于:https://www.cnblogs.com/pkill/archive/2010/07/11/1774568.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值