文件对话框分为打开文件对话框和保存文件对话框,
打开文件对话框用于选择要打开的文件的路径,保存文件对话
框用来选择要保存的文件的路径。
CFileDialog 类的构
造函数原型如下:
explicit CFileDialog(
BOOL bOpenFileDialog, // 指定文件对话框的类型。 TRUE :打开文件对话框,else:保存文件对话框
LPCTSTR lpszDefExt = NULL, //默认的文件扩展名
LPCTSTR lpszFileName = NULL, // 如果为 NULL,则不显示初始文件名。
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL, //文件过滤器
CWnd* pParentWnd = NULL,
DWORD dwSize = 0,
BOOL bVistaStyle = TRUE
);
文件对话框实例
1.创建一个基于对话框的 MFC 应用程序工程, 名称设为―OpenTest
2. 修改主对话框 IDD_OPENTEST_DIALOG 的模板,删除自动生成的 ―TODO: Place
dialog controls here.‖ 静态文本框,添加两个编辑框, ID 分别为 IDC_OPEN_EDIT 和 IDC
_SAVE_EDIT ,再添加两个按钮, ID 分别设为 IDC_OPEN_BUTTON 和 IDC_SAVE_BUTT
ON , Caption 分别设为 ― 打开 ‖ 和 ― 保存 ‖ 。按钮 IDC_OPEN_BUTTON 用于显示打开文件对话
框,编辑框 IDC_OPEN_EDIT 显示在打开文件对话框中选择的文件路径。按钮 IDC_SAVE
_BUTTON 用于显示保存文件对话框,编辑框 IDC_SAVE_BUTTON 显示在保存文件对话框
中选择的文件路径。
3.添加点击消息处理函数
1. void CExample17Dlg::OnBnClickedOpenButton()
2. {
3. // TODO: Add your control notification handler code here
4. // 设置过滤器
5. TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*
||");
6. // 构造打开文件对话框7. CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, thi
s);
8. CString strFilePath;
9.
10. // 显示打开文件对话框
11. if (IDOK == fileDlg.DoModal())
12. {
13. // 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编
辑框里
14. strFilePath = fileDlg.GetPathName();
15. SetDlgItemText(IDC_OPEN_EDIT, strFilePath);
16. }
17. }