经常用到这个类,避免每次都去查用法,这里记录一下:
用法很简单,通过下面这个例子就很清楚了:
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.youkuaiyun.com/tianhai110/article/details/2055149
https://blog.youkuaiyun.com/hanfenglz/article/details/80537027