經常用到這個類,避免每次都去查用法,這裏記錄一下:
用法很簡單,通過下面這個例子就很清楚了:
CFileDialog openDlg(TRUE,
_T("CLS File(*.cls)|*.cls"),
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("CLS File(*.cls)|*.cls||"),
this);//創建打開文件對話框對象
INT_PTR result = openDlg.DoModal();//以模態方式創建打開文件對話框
if (result == IDOK)//如果有選中文件,那麼result就是IDOK
{
CString pathName, fileName, titleName, extName;
pathName = openDlg.GetPathName();//得到完整的文件名,包括目錄名和擴展名如:c:/test/test1.txt
fileName = openDlg.GetFileName();//得到完整的文件名,包括擴展名如:test1.txt
titleName = openDlg.GetFileTitle();//得到完整的文件名,不包括目錄名和擴展名如:test1
extName = openDlg.GetFileExt();// 得到完整的文件擴展名,如:txt
MessageBox(pathName + "\r" + fileName + "\r" + titleName + "\r" + extName);//通過顯示,注意幾者區別
}
下面是CFileDialog構造函數原型:
CFileDialog::CFileDialog( BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL );
參數具體意義如下:
bOpenFileDialog:爲TRUE則顯示打開對話框,爲FALSE則顯示保存對話文件對話框。
lpszDefExt 指定默認的文件擴展名。
lpszFileName 指定默認的文件名。
dwFlags 指明一些特定風格。 (默認OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT)
lpszFilter 指明可供選擇的文件類型和相應的擴展名。
pParentWnd 爲父窗口指針
參考文獻:
https://blog.csdn.net/tianhai110/article/details/2055149
https://blog.csdn.net/hanfenglz/article/details/80537027