static TCHAR BASED_CODE szFilter[] = _T("image(*.bmp, *.jpg, *.png)|*.bmp;*.jpg;*.png|All Files (*.*)|*.*||"); CFileDialog dlg(TRUE,"bmp", 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this); dlg.DoModal();
微软对CFileDialog构造函数的原型:
explicit CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL, DWORD dwSize = 0, BOOL bVistaStyle = TRUE );参数: LPCTSTR lpszFilter = NULL, 即关于文件类型展现的过滤字符串
如上,对于szFilter的书写规则,决定着打开的对话框中,在选择框中选择(image(*.bmp, *.jpg, *.png) )时,对话框中文件类型的展现。在经过多次调试后发现规律。
1、szFilter中 如 image(*.bmp, *.jpg, *.png),出现在 “|”前,包含在括号中的内容为提示内容
2、提示内容后 且”|“后,对于出现在文件对话框中的文件类型, *.bmp;*.jpg;*.png 每个文件类型中间以分号”;“隔开