打开文件失败后,为什么还有一个新的自窗口被创建
编号:QA004479
建立日期: 2001年11月11日 最后修改日期:2001年11月11日
所属类别:
zhangxingping:
操作系统:win200
编程工具:vc++6.0
问题:我在一个由向导生成的多文档的程序中,对文档类的序列化操作中写如下的代码:
if (ar.IsStoring())
{
// TODO: add storing code here
if(this->m_CDib .Save (ar.GetFile ())==FALSE)
AfxMessageBox("Fail to save file !");
}
else
{
// TODO: add loading code here
if(this->m_CDib .Load (ar.GetFile())==FALSE)
AfxMessageBox("Faile to Load fiel !");
}
注释:m_CDib 是自己构造的CDib类的一个对象,把它作为改程序文档类的一个数据成员。CDib类中的文件加载函数(从文件中读取数据)原型如下
BOOL Load(CFile * );
:数据加载成功,返回TRUE,
:否则返回FALSE;
: 只支持位图文件的数据格式
CDib类的保存数据的成员函数原型为:
BOOL Save(CFile *)
: 数据保存成功,返回TRUE;
:否则返回FALSE;
:只支持位图文件的数据格式
该程序的View类中没有自己添加的任何代码。
为什么在点击Open菜单,完成打开对话框(注意:所选的文件不是位图文件)后,在确实出现了
AfxMessageBox("Faile to Load fiel !");
对话框之后,还有一个新的自窗口被创建。怎么才能不创建这个子窗口(因为文件打开失败了!)?谢谢指点。
水平: 刚入门
回答:
首先,如果载入文件失败,必须有一个标记(比如 m_CDib 的一个变量 );然后在该 CDocument 子类中的 OnOpenDocument() 中判断这个标记,如果失败则返回FALSE即可。
此问题由John Han回答。
| |
|
|
| |
|
|