2024年2月7日发(作者:)

今天尝试了下打开和另存为对话框。遇到了以下几个问题。

单文档的菜单栏新添加的项怎么添加响应;

2.文件打开后怎么操作它;

3.怎么在打开/另存为对话框里设置文件类型的过滤;

借助手册和实践得出如下解决方法:

MFC中用CFile类进行文件的操作,常用的CFile类的成员函数有Open、Read、Write等等。这是我们对文件的操作函数。

CFileDialog类则是负责打开/另存为对话框的相关任务了。在定位CDileDialog对象的时候给出的是TRUE的话则是打开对话框,是FALSE的话则是另存为对话框。

CFileDialog file(TRUE);//打开对话框

CFileDialog file(FALSE);//另存为对话框

因为CFileDialog类派生自CDialog类,所以用他的成员函数DoModal就可以将其显示出来了。

针对第一个问题:在VC 6.0 的资源视图里面,找到menu资源,然后在其上增加一个标签“文件操作”,然后在这个标签下面增加一个项“打开”:如下图所示:

增加好上面得操作之后,就可以为之添加按键响应。在打开文件上右击鼠标,选择ClassWizard,出现以下界面:

在Message中选择COMMAND,然后在点击右侧的ADD FUNCTION按钮。设定好函数的名称。至此对其的响应就可以写在这个函数里面了。

例如写上:

CFileDialog file(TRUE);

al();

就可以在按下这个按钮的时候出现打开文件的对话框了。

针对第二个问题:就是在退出打开文件对话框后对文件的操作了,可以用以下代码:

if(IDOK==l()){

CFile myfile(hName(),CFile::ModeCreate|CFile::ModeRead);//如此就读出选定的文件了

…//此处是对文件的操作了

}

针对第三个问题:CFileDialog类有个成员m_ofn,这个成员是一个结构体,其有成员lpstrFilter,这个就是设置过滤规则的,默认的 是没有过滤。下面代码是一个过滤的实例:

file.m_ilter=”Text files(*.txt)0”;

如此就过滤出了文本文件了。

打开/另存为对话框在设计中经常用的,此处做一个了简单的说明。