保存文件对话框同打开文件对话框使用方法类似,也是以模式对话框的形式弹出。
使用API函数GetSaveFileName可以弹出保存文件对话框。
MFC中GetSaveFileName的封装和打开文件对话框相同,也是CFileDialog,由构造时传入的参数区分是显示打开文件对话框还是保存文件对话框。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
新建基于对话框的MFC应用程序,名为SaveFileDemo
在主对话框上添加一个文本框,ID为IDC_EDT_FILENAME
将“确定”按钮改为“浏览”,并为其添加响应函数如下:
void CSaveFileDemoDlg::OnBtnView()
{
// 文本框用于显示保存文件的路径
///显示保存文件对话框
///第一个参数设置为**FALSE**,表示为建立“保存文件”对话框,为TRUE表示建立“打开文件”对话框
CFileDialog dlg(FALSE ,NULL ,NULL ,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST ,
_T("文本文件(*.txt) | *.txt | 所有文件(*.*)|*.*||") , this);
if(dlg.DoModal() == IDOK)
{
///得到文件名
SetDlgItemText(IDC_EDT_FILENAME ,dlg.GetPathName());
}
}
说明:
CFileDialog构造函数的第一个参数就是用来区分打开文件对话框还是保存文件对话框。
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST这三个标志,通常是保存文件对话框不可少的标志。