函数原型如下:
CFileDialog openFileDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt =NULL,LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , LPCTSTR lpszFilter = NULL , CWnd *pParentWnd = NULL);
参数 | 说明 |
bOpenFileDialog | TRUE时,构造打开文件对话框,FALSE时,构造另存为对话框 |
lpszDeExt | 文件默认的扩展名,如果为NULL,没有扩展名被追加到文件名中。 |
lpszFileName | 确定编辑框中初始化时的文件名称,如果是NULL,编辑框中没有文件名称 |
dwFlags | 用于自定义文件对话框 |
lpszFilter | 用于指定对话框过滤的文件类型 |
PParentWnd | 标识文件对话框的父窗口指针 |
用法案例:
CFileDialog dlg(true, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
_T("image files (*.bmp ;*.jpg)|*.bmp; *.jpg |ALL Files (*.*) |*.*||"),NULL);
说明:文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明
这里第一个参数是true,是构建打开文件框,没有默认扩展名,过滤显示bmp和jpg文件,或者另一个选项是显示所有文件类型。
作者在测试的时候这段代码并不能很好地把jpg文件显示出来,后面不断测试发现,加入大写的扩展名就能正常显示。
如下格式:
_T("image files (*.bmp ;*.jpg;*.jpeg; *.png)|*.bmp; *.jpg ; *.JPG;*.jpeg; *.JPEG ;*.png;*.PNG|ALL Files (*.*) |*.*||"),NULL);
如此,可以把png,jpeg等格式都很好显示过滤。