1.CFileDialog類封裝了Windows經常使用的文件對話框函數
CFileDialog構造函數的定義形式爲:spa
CFileDialog::CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName =NULL,DWORDdwFlags = OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter = NULL,CWnd* pParentWnd = NULL);
第一個參數: bOpenFileDialog : TRUE則顯示打開文件對話框,FALSE則顯示保存文件對話框。指針
第二個參數: lpszDefExt : 指定默認的文件擴展名。code
第三個參數: lpszFileName : 指定默認的文件名 。blog
第四個參數: dwFlags : 指明一些特定風格。it
第五個參數: lpszFilter : 指明可供選擇的文件類型和相應的擴展名。class
第六個參數: pParentWnd : 爲父窗口指針。擴展
(1)選擇一個xls或者xlsx格式的文件,具體用法如例:file
CString strFileFilter(_T("XLS File(*.xls)|*.xls|XLSX File(*.xlsx)|*.xlsx||")); CFileDialog fileOpen(TRUE, _T("*.xls;*.xlsx"), _T("數據表"), OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,strFileFilter , NULL); fileOpen.m_ofn.lpstrTitle = _T("對話框標題"); if (IDOK != fileOpen.DoModal()) return; fileOpen.GetPathName ();//選擇的路徑(E:\CAD選線成果樣例1.dwg) fileOpen.GetFileName();//文件名稱(CAD選線成果樣例1.dwg) fileOpen.GetFileExt();//文件後綴(dwg)
(2)導出到文件夾內,也能夠實現選擇到文件夾層而不是文件層構造函數
CFileDialog saveFile = CFileDialog( FALSE,".xls","信息.xls",OFN_CREATEPROMPT|OFN_PATHMUSTEXIST,"Microsoft Excel(*.xls)"); if (IDOK==saveFile.DoModal()) { CString sExcelFile = saveFile.GetPathName(); }
2.DoPromptFileName:MFC顯示文件打開對話框得到文件名。
DoPromptFileName構造函數的定義形式爲:
BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle,DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate);
第一個參數:fileName:選擇的文件路徑;第二個參數:nIDSTitle:第三個參數:lFlags:第四個參數:bOpenFileDialog:第五個參數:pTemplate
具體用法如例:
CString newName; if (!DoPromptFileName(newName, AFX_IDS_OPENFILE, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, TRUE, NULL)) return;