当前位置 : 首页 » 文章分类 :  开发  »  MFC中文件对话框类CFileDialog详解及文件过滤器说明

MFC中文件对话框类CFileDialog详解及文件过滤器说明

CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。

成员变量:
m_ofn:m_ofn是OPENFILENAME类型的结构。使用此结构,在创建之后、用DoModal成员函数显示之前初始化文件打开和存盘对话框的外表。

  • ①m_ofn的lpstrTitle成员是文件对话框的标题:
    dlg.m_ofn.lpstrTitle = _T("打开文件"); // 打开文件对话框的标题名(dlg是一个CFileDialog类的对象)
  • ②m_ofn的Flag成员是文件对话框的一些属性标记,可以是一些标记的组合,这些标志可在CFileDialog类的构造函数的第四个参数dwFlags中指定。
    • OFN_ALLOWMULTISELECT :指定文件名列表框允许多选。
    • OFN_EXPLORER :指出任何打开或另存为对话框使用新的Explorer风格的用户化模块。(VC6中不支持)

成员函数:
(1) 构造函数

CFileDialog(BOOL bOpenFileDialog,
             LPCTSTR lpszDefExt = NULL,
              LPCTSTR lpszFileName = NULL,
              DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
              LPCTSTR lpszFilter = NULL,
              CWnd* pParentWnd = NULL
);

参数:

  • bOpenFileDialg:如果为TRUE,则创建文件打开对话框;如果为FALSE,则构造一个File Save As(另存为)对话框。
  • lpszDefExt:缺省文件扩展名,如果用户在文件名编辑框中不包含扩展名,则lpszDefExt定义的扩展名自动加到文件名后。如果为NULL,则不添加扩展名。
  • lpszFileName:初始显示于文件名编辑框中的文件名,如果为NULL,则不显示初始文件名。
  • dwFlags:一个或多个标志的组合,使你可定制对话框。即OPENFILENAME结构中的Flag成员。
  • lpszFilter:一列字符串对,指定可以应用到文件的过滤器。如果指定过滤器,则只有符合规则的文件显示于文件列表框中。
  • pParentWnd 指向文件对话框对象的父窗口或拥有者窗口。

(2) int DoModal(); //弹出文件对话框
返回值:

  • IDOK:表示用户在文件对话框中选择了文件并点击了“打开”按钮。
  • IDCANCEL:表示用户在文件对话框中点击了“取消”按钮。

(3) CString GetFileName( ); //返回文件名
说明:文件名包括基本名和扩展名,例如:对于文件C:\FILES\TEXT.DAT,则会返回:TEXT.DAT
如果m_ofn.Flags具有OFN_ALLOWMULTISELECT标志设置,则应用GetStart-Position 和GetNextPathName成员函数获取一个文件路径名。

(4) CString GetFileTitle(); //返回文件基本名

(5) CString GetFileExt( ); //返回文件名的扩展名

(6) CString GetPathName( ); //返回文件的完整路径
说明:调用此成员函数获取输入到对话框中文件的全路径,路径包括文件标题和文件的全部目录路径。如果对文件“C:\FILES\TEXT.DAT”调用此成员函数,GetRathMane则会返回“C:\FILES\TEXT.DAT”。

文件过滤器说明:
lpszFilter参数用于判断文件名类型及文件列表框中哪些可被显示。双字符串的第一个字符串描述过滤器,第二个串表明使用的文件扩展名,多重扩展可用“;”来指定。字符串由两个“|”字符结尾,最后是一个NULL。也可使用CString对象作为参数。
例如:有两个过滤规则,一个是图片文件:.bmp或者.jpg;另一个是所有文件:*.*。则过滤规则为:
" 图片文件 |*.jpg;*.bmp | 所有文件 | *.* ||"
例如:Mirosoft Excel 允许用户用.XLC扩展名(表)或.XLS(工作表)打开文件,Excel过滤器应如下:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角

下一篇 Word中为图表生成目录

域名迁移公告
2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问!
阅读
886
阅读预计3分钟
创建日期 2012-07-26
修改日期 2017-07-14
类别
标签
百度推荐