在网上查到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 指明一些特定风格。
-pszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
-pParentWnd 为父窗口指针。
我在使用CFileDialog完成打开BMP是的代码是,dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,lpszFilter,NULL);而使用保存对话框的时候,dlg(FALSE,_T("BMP"),_T("*.BMP"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,lpszFilter,NULL);当你打开保存对话框的时候,它会在编辑框上默认显示“*.BMP”,当你在对话框上输入了文件名字时,比如“5”,它会自动在文件名字后面添加BMP。
注:LPCTSTR lpszFilter="BMP Files(*.bmp)|*.bmp|任何文件|*.*||";