文件對話框分爲打開文件對話框和保存文件對話框,
打開文件對話框用於選擇要打開的文件的路徑,保存文件對話
框用來選擇要保存的文件的路徑。
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. }