VC++项目开发笔记——打开或保存指定类型的文件CFileDialog类

来源:互联网 发布:暴走大事件之网络语 编辑:程序博客网 时间:2024/05/21 09:17

有些时候,我们的程序需要打开和保存指定类型的文件。比如.bmp  .jpg  .doc等等。

而点击主菜单上的MFC默认的打开和保存对话框时,系统会把所有的文件都显示出来,如果文件类型较多,要找到我们所需的文件就要不停地拖动滑块,造成了不必要的麻烦。那么,如何使这项工作变得简单又清晰呢?微软为我们提供了一个CFileDialog::CFileDialog函数,可以很好地解决这个问题。

先来看一下这个函数在MSDN的具体使用方法:

void CChildFrame::OnFileOpen() {   // szFilters is a text string that includes two file name filters:   // "*.my" for "MyType Files" and "*.*' for "All Files."   char CChildFrame::szFilters[]=      "MyType Files (*.my)|*.my|All Files (*.*)|*.*||";   // Create an Open dialog; the default file name extension is ".my".   CFileDialog fileDlg (TRUE, "my", "*.my",      OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);      // Display the file dialog. When user clicks OK, fileDlg.DoModal()    // returns IDOK.   if( fileDlg.DoModal ()==IDOK )   {      CString pathName = fileDlg.GetPathName();         // Implement opening and reading file in here.      ...      //Change the window's title to the opened file's title.      CString fileName = fileDlg.GetFileTitle ();         SetWindowText(fileName);   }}

下面来具体分析这个函数的参数。

第一个参数如果设置为TRUE,则代表打开一个对话框;若为FALSE,则是打开的是保存对话框;

第二个参数代表默认的文件扩展名,可以设为NULL;

第三个参数指定默认的文件名,可以设为NULL;

第四个参数指明特定的风格;

第五个参数指明可供选择的文件类型和相应的扩展名,具体的使用方法可以从上面的例子中看出。注意:最后的结尾是两道竖线。另外,还可以先定义一个字符串把所需要的文件后缀都写出来,然后再在使用时将该参数用字符串名来代替。方法如下:

static char BASED_CODE szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
第六个参数为父窗口的指针。

原创粉丝点击