找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5054|回复: 2

对话框CFileDialog类的用法

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2010-8-5 19:45:24 | 显示全部楼层 |阅读模式
VC中使用CFileDialog进行文件操作,一般来讲你不需要派生新的类,因为基类已经提供了常用的功能。而且在创建并等待对话框结束后你可以通过成员函数得到用户在对话框中的选择。
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则显示保存对话文件对话框。
lpszDefExt 指定默认的文件扩展名,如果用户在文件名栏不指定,则该扩展名自动加到文件名中(用于保存的时候吧)
lpszFileName 指定默认的文件名,开始出现在文件名栏中的文件名
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
pParentWnd 为父窗口指针。
创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:\test\test1.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变量。
CFileDialog类的成员
数据成员
Windows OPENFILENAME结构,提供对基本文件对话框参数的访问
构造函数
构造一个CFileDialog对象操作
显示对话框并使用户可以进行选择
返回选定文件的完整路径
返回选定文件的文件名
返回选定文件的扩展文件名
返回选定文件的标题
返回下一个选定文件的完整路径
返回选定文件的只读状态
返回文件名列表的第一个元素位置
可覆盖的函数
发生共享冲突时调用
确认键入对话框中的文件名
当列表框选择改变时调用
处理WM_NOTIFY CDN_INITDONE消息
处理WM_NOTIFY CDN_SELCHANGE消息
处理WM_NOTIFY CDN_FOLDERCHANGE消息
处理WM_NOTIFY CDN_TYPECHANGE消息
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2011-7-31 11:14:53 | 显示全部楼层
  1.         CFileDialog dlgOpen(TRUE);
  2.         dlgOpen.m_ofn.lpstrTitle = "打开要发送的文件";
  3.         dlgOpen.m_ofn.lpstrFilter = "所有文件(*.*)\0*.*";
  4.         if(IDOK == dlgOpen.DoModal())
  5.         {
  6.                 AfxMessageBox(dlgOpen.GetPathName());
  7.                
  8.         }
复制代码
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1

主题

5

回帖

0

精华

初来乍到

积分
28
发表于 2011-9-13 18:59:55 | 显示全部楼层
哦哦。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表