CFileDialog文件选择对话框格式备忘

MFC下CFileDialog文件选择对话框的使用:

 

首先构造一个对象并提供相应的参数:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );

 

参数意义如下:
bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
pParentWnd 为父窗口指针。

例子:    

CString FileName;
TCHAR szFilter[260] = "图片文件 (*.png)|*.png|所有文件 (*.*)|*.*||";
CFileDialog MyDlg(TRUE, NULL,"*.Png",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, NULL );
if (MyDlg.DoModal()==IDOK){
 FileName=MyDlg.GetFileName();
}

 

WTL  CFileDialog文件选择对话框的使用:

与MFC中的使用方法基本相同只是 WTL7.0 以上版本中对过滤字符串的分隔符用'/0'而不是"|"也就是

TCHAR szFilter[260] = "图片文件 (*.png)|*.png|所有文件 (*.*)|*.*||"; 需要改为

TCHAR szFilter[260] = "图片文件 (*.png)/0*.png/0所有文件 (*.*)/0*.*/0/0";

原因大概是MFC中使用"|"作分隔符为了字符串的操作方便而已实际内部还是会转换成"/0"的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值