MFC——文件打开和保存对话框(CFileDialog)
最近要做一个文件打开和保存的对话框,现将相关的代码记录如下,用以备忘!
所用控件:
2个静态标签(Static Text):用以显示功能标签;
2个文本框(Edit):用以显示打开的文件路径全名要保存的文件路径全名,设置其Read Only属性为true将文本框设置为不可编辑;
2个按钮(Button):用以浏览文件;
打开文件对话框
CFileDialog打开的对话框
代码如下:(方法1)
- //打开文件
- void COpenSaveFileDialogDlg::OnBnClickedButtonOpen()
- {
- BOOL isOpen = TRUE; //是否打开(否则为保存)
- CString defaultDir = L"E:\\FileTest"; //默认打开的文件路径
- CString fileName = L""; //默认打开的文件名
- CString filter = L"文件 (*.doc; *.ppt; *.xls)|*.doc;*.ppt;*.xls||"; //文件过虑的类型
- CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_READONLY, filter, NULL);
- openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.doc";
- INT_PTR result = openFileDlg.DoModal();
- // CString filePath = defaultDir + L"\\test.doc";
- CString filePath ;
- if(result == IDOK) {
- filePath = openFileDlg.GetPathName();
- }
- CWnd::SetDlgItemTextW(IDC_EDIT_SRC, filePath);
- }
- //保存文件
- void COpenSaveFileDialogDlg::OnBnClickedButtonSave()
- {
- BOOL isOpen = FALSE; //是否打开(否则为保存)
- CString defaultDir = L"E:\\FileTest"; //默认打开的文件路径
- CString fileName = L"test.doc"; //默认打开的文件名
- CString filter = L"文件 (*.doc; *.ppt; *.xls)|*.doc;*.ppt;*.xls||"; //文件过虑的类型
- CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, filter, NULL);
- openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.doc";
- INT_PTR result = openFileDlg.DoModal();
- CString filePath = defaultDir + L"\\" + fileName;
- if(result == IDOK) {
- filePath = openFileDlg.GetPathName();
- }
- CWnd::SetDlgItemTextW(IDC_EDIT_DEST, filePath);
- }
代码:方法2
void
CExample17Dlg::OnBnClickedOpenButton()
{
// TODO: Add your control notification handler code here
// 设置过滤器
TCHAR
szFilter[] = _T(
"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"
);
// 构造打开文件对话框
CFileDialog fileDlg(TRUE, _T(
"txt"
), NULL, 0, szFilter,
this
);
CString strFilePath;
// 显示打开文件对话框
if
(IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_OPEN_EDIT, strFilePath);
}
}
void
CExample17Dlg::OnBnClickedSaveButton()
{
// TODO: Add your control notification handler code here
// 设置过滤器
TCHAR
szFilter[] = _T(
"文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||"
);
// 构造保存文件对话框
CFileDialog fileDlg(FALSE, _T(
"doc"
), _T(
"my"
), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
szFilter,
this
);
CString strFilePath;
// 显示保存文件对话框
if
(IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
SetDlgItemText(IDC_SAVE_EDIT, strFilePath);
}
}