MFC 实现打开文件对话框 保存文件对话框
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 指定默认的文件扩展名。
OFN_HIDEREADONLY隐藏只读文件,屏蔽掉只读文件,可以避免改写只读文件
OFN_OVERWRITEPROMPT, 覆盖已有文件前提示。
lpszFileName 定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
"JPG Files(*.jpg)|*.jpg|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件
的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
pParentWnd 为父窗口指针, 一般可选NULL。
"JPG Files(*.jpg)|*.jpg|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件
的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
pParentWnd 为父窗口指针, 一般可选NULL。
//打开文件对话框的例子
void CMFCPICDlg::OnBnClickedBtrarpath()
{
// TODO: 在此添加控件通知处理程序代码
char szFileFilter[] = "压缩文件(*.rar)|*.rar|"
"所有文件(*.*)|*.*|";
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,(LPCTSTR)szFileFilter);
if(dlg.DoModal() == IDOK){
strrarpath = dlg.GetPathName();
SetDlgItemText(IDC_EDITRARPATH,strrarpath);
CopyFile(strrarpath,"E:pic.rar",false);
}
}
//保存文件对话框例子
void CMFCPICDlg::OnBnClickedBtaimpath()
{
// TODO: 在此添加控件通知处理程序代码
CString cmd = _T("cmd /c");
cmd += "copy /b E:pic.jpg+E:pic.rar E:aim.jpg";
WinExec((LPCSTR)cmd,SW_HIDE);
char szFileFilter[] = "图片文件(*.jpg)|*.jpg|"
"所有文件(*.*)|*.*|";
CFileDialog dlg(false,"jpg",NULL,OFN_HIDEREADONLY,(LPCTSTR)szFileFilter);
if(dlg.DoModal() == IDOK){
straimpath = dlg.GetPathName();
SetDlgItemText(IDC_EDITAIMPATH,straimpath);
if(CopyFile("E:aim.jpg",straimpath,false))
MessageBox("图种生成成功"+straimpath,"结果");
else
MessageBox("请先选择图片和压缩文件","警告");
}
}
OFN_HIDEREADONLY隐藏只读文件,屏蔽掉只读文件,可以避免改写只读文件
OFN_OVERWRITEPROMPT, 覆盖已有文件前提示。
OFN_ALLOWMULTISELECT:允许选择多个文件
OFN_CREATEPROMPT:如果输入的文件名不存在,则对话框返回询问用户是否根据次文件名创建文件的消息框
OFN_FILEMUSTEXIST:只能输入已存在的文件名
OFN_FORCESHOWHIDDEN:可以显示隐藏的文件
OFN_NOREADONLYRETURN:不返回只读文件
OFN_OVERWRITEPROMPT:保存的文件已存在时,显示文件已存在的信息