java 文件对话框 过滤_文件对话框类CFileDialog详解,文件过滤器说明

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

成员变量:

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

①m_ofn的lpstrTitle成员是文件对话框的标题:

dlg . m_ofn . lpstrTitle = _T("打开文件");    //打开文件对话框的标题名(dlg是一个CFileDialog类的对象)

②m_ofn的Flag成员是文件对话框的一些属性标记,可以是一些标记的组合:

OFN_ALLOWMULTISELECT:指定文件名列表框允许多选。

OFN_EXPLORER:指出任何打开或另存为对话框使用新的Explorer风格的用户化模块。(VC6中不支持)

这些标志可在CFileDialog类的构造函数的第四个参数dwFlags中指定。

成员函数:

(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 (*.*)|*.*||";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值