CFileDialog類封裝了Windows常用的文件對話框。常用的文件對話框提供了一種簡單的與Windows標準相一致的文件打開和文件存盤對話框功能。
可以用構造函數提供的方式使用CFileDialog,也可以從CFileDialog派生出自己的對話類并編寫一個構造函數來適應你的需要。每種情況下,對話框都與標準MFC對話框一樣工作。因為它們都是CCommonDialog類的派生類。
要使用CFileDialog,先用CFileDialog構造函數構造一個對象,當創建了一個對話框后,可以設置或修改m_ofn結構中的任何值,以初始化對話框控件的值或狀態。m_ofn結構是OPENFILENAME類型的。要了解更多信息,可參閱聯機文檔“Win32 SDK”中的OPENFILENAME結構。
初始化對話框控件后,調用DoModal成員函數顯示對話框并使用戶輸入路徑和文件。DoModal返回不論是用戶選擇了OK(IDOK)還是取消(IDCANCEL)按鈕。
當DoModal返回IDOK,可以使用某一個CFileDIalog的公共成員函數獲取用戶輸入的信息。
CFileDIalog包含許多保護成員,使你可以處理常用的共享沖突、文件名合法性檢查、列表框改變通知。這些保護成員對許多應用來說用處不大,因為缺省處理是自動的。對這些函數來說,消息映射入口是不必要的,因為它們是標準虛函數。
可以使用Windows CommDlgExtendError函數判斷在初始化對話框時是否是發生了錯誤,并獲取關于錯誤的更多信息。
析構一個CFileDialog對象是自動,無須調用CDialog::EndDialog。
要使用戶選用多個文件,可在調用DoModal之前設置OFN_ALLOWMULTISELECT標志。你應提供文件名緩沖區來放置返回的多個文件名的列表,這通過用一個分配了的緩沖區指針替換m_ofn.lpstrFile來實現,要在創建了CFileDialog之后調用DoModal之前進行此操作。另外,必須用m_ofn.lpstrFile指向的緩沖區字節數來設置m_ofn.nMaxFile。
CFileDialog依賴于Windows3.1及以后版本中的COMMDLG.DLL。
如果從CFileDialog中派生出一個新類,可用消息映射處理。要擴展消息處理,從CWnd中派生一個類,向新類中加入一個消息映射并為新消息提供成員函數,無須提供一個鉤子函數來定制對話框。
要定制對話框,從CFileDialog中派生一個對象,提供一個定制對話模板,從擴展控件中加入一個消息映射,處理通知消息。任意未處理的消息將傳遞給基類。
無須定制鉤子函數。
#include <afxdlgs.h>
CFileDialog類的成員