CFileDialog的使用学习总结

函数原型如下:

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等格式都很好显示过滤。

原文地址:https://www.cnblogs.com/2020zxc/p/15013963.html