CDocument类的DeleteContents方法究竟删除了什么东西

转载 2013年12月04日 15:05:31

CDocument类的DeleteContents方法究竟删除了什么东西

在关闭应用程序删除文档对象时,或用File->Open菜单打开一个文档时,需要清理文档中的数据。同文档的初始化一样,文档的清理也不是在文档的析构函数中完成,而是在文档的CDocument::DeleteContents()成员函数中完成的(想想为什么?)。析构函数只用于清除那些在对象生存期都将存在的数据项。DeleteContents()成员函数的调用有两个作用:

1.删除文档的数据;

2确信一个文档在使用前为空。

  前面已经说到,OnNewDocument函数会调用DeleteContents()函数。在用户选择File->Open菜单时,应用程序对象调用应用程序类的OnFileOpen成员函数,CWinApp::OnFileOpen调用内部的文档管理类CDocManager::OnFileOpen()成员函数,提示用户输入文件名。然后调用CWinApp::OpenDocumentFile打开一个文件。OpenDocumentFile在打开文件后首先调用DeleteContents成员函数清理文档中的数据,确保消除以前打开的文档的数据被清理掉。

  缺省的DeleteContents函数什么也不做。你需要重载DeleteContents函数,并编写自己的文档清理代码。要重载DeleteContents成员函数:

  从View菜单下选择ClassWizard,启动ClassWizard,选择Message Maps页。在ClassName下拉列表框中选择CEditorDoc,从ObjectIDs列表框选择CEditorDoc,在Message列表框双击DeleteContents。此时DeleteContents出现在Member functions列表框中,并被选中。点Edit Code按钮,开始编辑DeleteContents函数定义。

ubuntu16.04搜狗输入法无法输入中文的解决方法

搜狗输入法在使用过程,由于修改了某些设置选项,导致搜狗输入法一直无法输入中文字符,期间尝试过重启电脑,重装语言包,重装搜狗输入法均未能解决,最终的解决方法为删除搜狗的配置文件. 命令为:cd ~/....
  • qq_15773669
  • qq_15773669
  • 2017年04月04日 13:37
  • 760

[MFC]CDocument文档类简介

1. 文档的基本功能:     1) 文档就是程序数据的一种抽象表示,可以表示数据库连接资源、文本文字等任何形式的数据;     2) 文档对象主要为视图提供公用成员函数,使其可以访问文档的数据,...
  • Lirx_Tech
  • Lirx_Tech
  • 2015年09月22日 20:06
  • 2067

CDocument

  在"文档/视图"架构的MFC程序中,文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用...
  • hczhiyue
  • hczhiyue
  • 2011年03月07日 11:25
  • 1382

CDocument继承自CCmdTarget类,只能接收WM_COMMAND

//     错误原因:CDocument继承自CCmdTarget类,只能接收WM_COMMAND,它的消息处理函数原形为//LRESULT CSuperEditDoc::OnFileProcess...
  • carl2380
  • carl2380
  • 2008年11月06日 09:18
  • 420

CView_VS_CDocument

CView与CDocument 这是面试的时候,考官问我的问题之一。具体问题忘记了。 最近看到一个人写的MFC的一些bolg,突然想起来这个问题了,就稍微总结一下,浅显之处,还请见谅。 第一点,...
  • chen825919148
  • chen825919148
  • 2012年09月08日 13:35
  • 876

CDocument类的使用

首先我们来写一个例子:在视图类中显示文档类的数据 1.建一个win32简单应用程序 2. 删除入口函数,只留下#include "stdafx.h" 3.将stdafx.h中的头文件 更改...
  • meetings
  • meetings
  • 2015年07月15日 21:20
  • 456

桌面上的网上邻居被删除了,怎样才能恢复

在桌面上空白处点击鼠标右键-->选择"属性"-->再选择"桌面"-->再选择"自定义桌面"--> 在网上邻居的前面的复选框勾上,然后点确定,网上邻居即可重新显示在桌面上!...
  • vince6799
  • vince6799
  • 2008年10月27日 08:24
  • 7534

不小心删掉的照片怎么找回

拍照时每个女孩子都爱干的事,特别是有好久不见的朋友到来,肯定要好好拍照留念的呀!但是,女孩子们也比较臭美,自己不喜欢的照片也绝对不会留在相机里。我就是这种挑剔的主。前段时间久违的同学来玩,肯定是疯拍一...
  • u013469241
  • u013469241
  • 2014年01月18日 16:52
  • 473

误删mysql.user表,重新创建

CREATE TABLE `user` (   `Host` varchar(60) character set utf8 collate latin1_bin NOT NULL default '...
  • WSKinght
  • WSKinght
  • 2014年08月03日 10:51
  • 734

DCOM配置出错: 不小心删除DCOM配置中,“我的电脑”属性的Everyone权限导致......

不小心删除DCOM配置中,“我的电脑”属性的Everyone权限,导致双击“我的电脑”,DCOM配置窗口即非法关闭,无法继续配置工作;解决办法:在同操作系统导出以下两个路径的键值:HKEY_LOCAL...
  • PerfectToday
  • PerfectToday
  • 2011年06月10日 16:17
  • 1279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CDocument类的DeleteContents方法究竟删除了什么东西
举报原因:
原因补充:

(最多只允许输入30个字)