CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL
);
參數: bOpenFileDialg 如果為TRUE, 則創建文件打開對話框;如果為FALSE,則構造壹個File Save As(另存為)對話框。
lpszDefExt 缺省文件擴展名,如果用戶在文件名編輯框中不包含擴展名,則lpszDefExt定義的擴展名自動加到文件名後。如果為NULL,則不添加擴展名。
lpszFileName 初始顯示於文件名編輯框中的文件名,如果為NULL,則不顯示初始文件名。
dwFlags 壹個或多個標誌的組合,使妳可定制對話框。要了解這些標誌的描述,可參閱聯機文檔“Win32 SDK”中的OPENFILENAME結構。如果妳改變m_ofn.Flags結構成員,在改變中用OR操作保持缺省行為完整。
lpszFilter 壹列字符串對,指定可以應用到文件的過濾器。如果指定過濾器,僅被選擇的文件顯示於文件列表框中。請參閱說明部分,了解如何使用過濾器。
pParentWnd 指向文件對話框對象的父窗口或擁有者窗口。
說明:
調用此成員函數構造壹個標準Windows文件對話框對象,或構造壹個打開對話框或構造壹個存盤對話框,根據bOpenFileDialog的值決定。
OFN_ALLOWMULTISELECT標誌。妳應提供文件名緩沖區來放置返回的多個文件名的列表,這通過用壹個分配了的緩沖區指針替換m_ofn.lpstrFile來實現,要在創建了CFileDialog之後調用DoModal之前進行此操作。另外,必須用m_ofn.lpstrFile指向的緩沖區字節數來設置m_ofn.nMaxFile。
為使用戶用鼠標或鍵盤改變壹個Explorer風格對話框的大小,設置OFN_ENABLESIZING標誌,這僅當妳提供壹個鉤子進程或定制模板時才有必要設置。此標誌僅與壹個Explorer風格的對話框壹起工作,舊風格的對話框不可改變大小。
lpszFilter參數用於判斷文件名類型及文件列表框中哪些可被顯示。雙字符串的第壹個字符串描述過濾器,第二個串表明使用的文件擴展名,多重擴展可用“;”來指定。字符串由兩個“|”字符結尾,最後是壹個NULL。也可使用CString對象作為參數。
例如,Mirosoft Excel 允許用戶用.XLC擴展名(表)或.XLS(工作表)打開文件,Excel過濾器應如下:
static char BASED_CODE szFilter[] =
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";