MFC打开文件对话框 CFileDialog的用法

MFC和Qt一样为我们提供了系统自带的文件对话框,使用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 ,为TRUSE则显示打开对话框,位FALSE则显示保存文件对话框。

lpszDefExt

这个是指定默认的文件扩展名 (默认为NULL)

lpszFileName

指定默认的文件名(默认为NULL)

dwFlags

指定一些特定的风格,例如隐藏只读, 写入提醒,覆盖提示。。。。等等  可以以使用 “ | ”这个符号将多个值连接起来(具体可以看下面的代码展示)

lpszFilter

这是一个重要的参数,他可以指明可供选择的文件类型和相应的扩展名,参数格式如下:

“Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||”;

  1.  文件类型说明和扩展名用 “|”分隔
  2. 同种类型文件的扩展名间可以用” ; “符号分隔
  3. 每种文件类型用 ” | ” 分隔
  4. 末尾使用 ” || “指明

参数就介绍完了,下面看看我写的一个一段小代码吧

QQ截图20160111231504

CFileDialog中的其他成员函数说明:

pParentWnd 为父窗口指针

创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:

CString CFileDialog::GetPathName( ) 得到完整的路径+文件名,包括目录名和扩展名如:c: est est1.txt

CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt

CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt

CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1

POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。

CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。

 

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注