现在的位置: 首页 > 综合 > 正文

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

2013年03月02日 ⁄ 综合 ⁄ 共 2867字 ⁄ 字号 评论关闭

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

成员变量:

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

                                  
m_ofnlpstrTitle成员是文件对话框的标题:

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

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

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

 

抱歉!评论已关闭.