<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0041)http://www.vczx.com/tutorial/mfc/mfc5.php -->
<HTML><HEAD><TITLE>MFC教程_ MFC对象的创建</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3354" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<P align=justify>
<LI><A name=_Toc445889035></A><A name=_Toc445782438></A><A
name=_Toc452640914></A><A name=_Toc457298997></A><B>MFC对象的创建</B>
<P></P>
<P
align=justify>前面几章介绍了MFC的核心概念和思想,即介绍了MFC对Windows对象的封装方法和特点;MFC对象的动态创建、序列化;MFC消息映射机制。</P>
<P align=justify>现在,考查MFC的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:</P>
<P align=justify>MFC中诸多MFC对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,文档模板对象等。</P>
<P align=justify>MFC对象的创建和销毁:由什么对象创建或销毁什么对象,何时创建,何时销毁?</P>
<P align=justify>MFC提供了那些接口来支持其编程模式?</P>
<OL>
<P align=justify>
<LI><A name=_Toc445889036></A><A name=_Toc445782439></A><A
name=_Toc452640915></A><A name=_Toc457298998></A><B>MFC对象的关系</B>
<P></P>
<OL>
<P align=justify>
<LI><B><A name=_Toc445889037></A><A name=_Toc445782440></A><A
name=_Toc452640916></A><A name=_Toc457298999></A>创建关系</B>
<P></P><B><IMG height=187 hspace=12 src="MFC教程_ MFC对象的创建.files/image118.gif"
width=288 align=left> </B>
<P
align=justify>这里讨论应用程序、文档模板、边框窗口、视、文档等的创建关系。图5-1大略地表示了创建顺序,但表5-1更直接地显示了创建与被创建的关系。</P>
<P align=justify> </P>
<P align=center>表5-1 MFC对象的创建关系</P>
<TABLE cellSpacing=1 cellPadding=7 width=497 border=1>
<TBODY>
<TR>
<TD vAlign=top width="47%">
<P align=justify>创建者 </P></TD>
<TD vAlign=top width="53%">
<P align=justify>被创建的对象 </P></TD></TR>
<TR>
<TD vAlign=top width="47%">
<P align=justify>应用程序对象 </P></TD>
<TD vAlign=top width="53%">
<P align=justify>文档模板 </P></TD></TR>
<TR>
<TD vAlign=top width="47%">
<P align=justify>文档模板 </P></TD>
<TD vAlign=top width="53%">
<P align=justify>文档 </P></TD></TR>
<TR>
<TD vAlign=top width="47%">
<P align=justify>文档模板 </P></TD>
<TD vAlign=top width="53%">
<P align=justify>边框窗口 </P></TD></TR>
<TR>
<TD vAlign=top width="47%">
<P align=justify>边框窗口 </P></TD>
<TD vAlign=top width="53%">
<P align=justify>视 </P></TD></TR></TBODY></TABLE>
<P align=center> </P>
<P align=justify></P>
<LI><A name=_Toc445889038></A><A name=_Toc445782441></A><A
name=_Toc452640917></A><A name=_Toc457299000></A><B>交互作用关系</B>
<P></P></LI></OL>
<P
align=justify>应用程序对象有一个文档模板列表,存放一个或多个文档模板对象;文档模板对象有一个打开文档列表,存放一个或多个已经打开的文档对象;文档对象有一个视列表,存放显示该文档数据的一个或多个视对象;还有一个指针指向创建该文档的文档模板对象;视有一个指向其关联文档的指针,视是一个子窗口,其父窗口是边框窗口(或者文档边框窗口);文档边框窗口有一个指向其当前活动视的指针;文档边框窗口是边框窗口的子窗口。</P>
<P align=justify>Windows 管理所有已经打开的窗口,把消息或事件发送给目标窗口。通常,命令消息发送给主边框窗口。</P><IMG
height=249 hspace=12 src="MFC教程_ MFC对象的创建.files/image119.gif" width=393
align=left>
<P align=justify>图5-2大略地表示了上述关系:</P>
<P align=justify></P>
<P align=justify>MFC提供了一些函数来维护这些关系。</P>
<P align=justify>表5-2列出了从一个对象得到相关对象的方法。</P>
<P align=center>表5-2 从一个对象得到另一个对象的方法</P>
<TABLE cellSpacing=1 cellPadding=7 width=497 border=1>
<TBODY>
<TR>
<TD vAlign=top width="29%">
<P align=center>本对象 </P></TD>
<TD vAlign=top width="27%">
<P align=center>要得到的对象 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>使用的成员函数 </P></TD></TR>
<TR>
<TD vAlign=top width="29%" rowSpan=2>
<P align=justify>CDocument对象 </P></TD>
<TD vAlign=top width="27%">
<P align=justify>视列表 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetFirstViewPosition</P>
<P align=justify>GetNextView </P></TD></TR>
<TR>
<TD vAlign=top width="27%">
<P align=justify>文档模板 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetDocTemplate </P></TD></TR>
<TR>
<TD vAlign=top width="29%" rowSpan=2>
<P align=justify>CView对象 </P></TD>
<TD vAlign=top width="27%">
<P align=justify>文档对象 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetDocument </P></TD></TR>
<TR>
<TD vAlign=top width="27%">
<P align=justify>边框窗口 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetParentFrame </P></TD></TR>
<TR>
<TD vAlign=top width="29%" rowSpan=2>
<P align=justify>CMDIChildWnd或</P>
<P align=justify>CFrameWnd对象 </P></TD>
<TD vAlign=top width="27%">
<P align=justify>活动视 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetActiveView </P></TD></TR>
<TR>
<TD vAlign=top width="27%">
<P align=justify>活动视的文档 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>GetActiveDocument </P></TD></TR>
<TR>
<TD vAlign=top width="29%">
<P align=justify>CMDIFrameWnd对象 </P></TD>
<TD vAlign=top width="27%">
<P align=justify>活动文档边框窗口 </P></TD>
<TD vAlign=top width="44%">
<P align=justify>MDIGetActive </P></TD></TR></TBODY></TABLE>
<P align=center> </P>
<P align=center>表5-3 从一个对象通知另一个对象的方法:</P>
<TABLE cellSpacing=1 cellPadding=7 width=497 border=1>
<TBODY>
<TR>
<TD vAlign=top width="31%">
<P align=justify>本对象 </P></TD>
<TD vAlign=top width="30%">
<P align=justify>要通知的对象/动作 </P></TD>
<TD vAlign=top width="39%">
<P align=justify>使用的成员函数 </P></TD></TR>
<TR>
<TD vAlign=top width="31%">
<P align=justify>CView对象 </P></TD>
<TD vAlign=top width="30%">
<P align=justify>通知文档更新所有视 </P></TD>
<TD vAlign=top width="39%">
<P align=justify>CDocument::UpdateAllViews </P></TD></TR>
<TR>
<TD vAlign=top width="31%">
<P align=justify>CDocument对象 </P></TD>
<TD vAlign=top width="30%">
<P align=justify>更新一个视 </P></TD>
<TD vAlign=top width="39%">
<P align=justify>CView::OnUpdate </P></TD></TR>
<TR>
<TD vAlign=top width="31%" rowSpan=2>
<P align=justify>CFrameWnd或</P>
<P align=justify>CMDIFrameWnd对象 </P></TD>
<TD vAlign=top width="30%">
<P align=justify>通知一个视为活动视 </P></TD>
<TD vAlign=top width="39%">
<P align=justify>CView::OnActivateView </P></TD></TR>
<TR>
<TD vAlign=top width="30%">
<P align=justify>设置一个视为活动视 </P></TD>
<TD vAlign=top width="39%">
<P align=justify>SetActivateView </P></TD></TR></TBODY></TABLE>
<P align=justify></P>
<P
align=justify>可以通过表5-2得到相关对象,再调用表5-3中相应的函数。例如:视在接受了新数据或者数据被修改之后,使用表5-2中的函数GetDocument得到关联文档对象,然后调用表5-3中的文档函数UpdateAllViews更新其他和文档对象关联的视。</P>
<P
align=justify>在表5-2和表5-3中,CView对象指CView或派生类的实例;成员函数列中如果没有指定类属,就是第一列对象的类的成员函数。</P>
<P align=justify></P>
<LI><A name=_Toc445889039></A><A name=_Toc445782442></A><A
name=_Toc452640918></A><A nam
没有合适的资源?快使用搜索试试~ 我知道了~
MFC.rar_Catalog.rar MFC_foundation
共60个文件
gif:45个
htm:14个
txt:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 97 浏览量
2022-09-21
04:33:49
上传
评论
收藏 498KB RAR 举报
温馨提示
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
资源推荐
资源详情
资源评论
收起资源包目录
MFC.rar (60个子文件)
MFC
MFC教程_ MFC的进程和线程.htm 27KB
MFC教程_ MFC的进程和线程.files
image140.gif 9KB
image141.gif 16KB
image142.gif 8KB
MFC教程_ CObject类.files
image111.gif 4KB
image112.gif 3KB
MFC教程_ 应用程序的退出.htm 12KB
MFC教程.htm 75KB
MFC教程_ MFC和Win32.files
image110.gif 2KB
image108.gif 3KB
image109.gif 3KB
image106.gif 4KB
image107.gif 3KB
MFC教程_ MFC对象的创建.htm 120KB
MFC教程_ 消息映射的实现.htm 91KB
MFC教程_ 概述.htm 16KB
MFC教程_ MFC下的文件类.htm 20KB
MFC教程_ 应用程序的退出.files
image139.gif 8KB
image138.gif 11KB
image137.gif 16KB
MFC教程_ MFC和Win32.htm 46KB
MFC教程_ CObject类.htm 29KB
MFC教程_ 对话框和对话框类CDialog.htm 66KB
MFC教程_ 消息映射的实现.files
image117.gif 8KB
image113.gif 4KB
MFC教程_ MFC对象的创建.files
image130.gif 8KB
image128.gif 4KB
image122.gif 4KB
image121.gif 5KB
image134.gif 6KB
image132.gif 20KB
image125.gif 19KB
image127.gif 10KB
image126.gif 15KB
image133.gif 6KB
image124.gif 4KB
image118.gif 3KB
image136.gif 13KB
image120.gif 20KB
image129.gif 14KB
image135.gif 3KB
image131.gif 11KB
image123.gif 4KB
image119.gif 5KB
MFC教程_ MFC的DLL.htm 21KB
MFC教程_ SOCKET类的设计和实现.htm 31KB
MFC教程.files
image151.gif 10KB
image147.gif 3KB
image146.gif 6KB
image145.gif 3KB
image144.gif 5KB
image149.gif 14KB
image148.gif 8KB
image150.gif 8KB
image143.gif 3KB
MFC教程_ MFC工具条和状态栏.htm 85KB
MFC教程_ 概述.files
image105.gif 5KB
image104.gif 6KB
MFC教程_ 内存分配方式和调试机制.htm 18KB
www.pudn.com.txt 218B
共 60 条
- 1
资源评论
林当时
- 粉丝: 97
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功