科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件全面解析MFC应用程序框架

全面解析MFC应用程序框架

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

一个好用的,功能强大的并且可以得心应手使用的编程工具往往会给我们程序员带来莫大的方便。

作者:eliner 来源:论坛 2007年10月20日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
三、MFC程序结构剖析

  在前面我分别给出了SDK和MFC应用程序的框架,并且稍微理了一下它们之间的对应关系。但是对于MFC程序来说,要想真正搞懂它的框架的话,还是不够的。现在我要做的事就是继续去分析一下上面的MFC程序,期望能够如我的标题所言,明明白白的看透MFC的应用程序框架。

  首先就是看一下应用向导生成的MFC应用程序都有哪些主要的文件,包含哪些类以及相关类的对应功能和他们之间的关系(再次说明,因为我在这里关心的是程序的框架结构,所以对于一些与话题关系不很大的东西我将会略去不提)。

  在上面的SDI应用程序中,向导为我们生成了4个主要的类,这些类都是MFC类的派生类,分别包含在对应的头文件以及实现文件中。

  1、 框架窗口类及其相关的文件

  框架窗口类对应应用程序的主窗口,明白这一点后就可以建立一个对这个类的感性认识了,他的定义是在头文件MainFrm.h中,而实现则是在MainFrm.cpp文件中。所有与框架窗口向光的功能都是在这里定义和实现的。

  2、 文档类及其相关的文件

  文档类在应用程序中没有直观的对应关系,但是,我们应该知道的一点就是MFC的框架的一个特点就是文档/视图结构。这里可以抽象一点地来理解,比如说我们在Word中打开了一个文件,其实,这个文件就是文档,而我们看到的只不过是这个文件一个视图,所以说文档提供了应用程序显示的支持,但是我们真正看到的应用程序显示的则是一个视图,文档类的定义是在“Hello WorldDoc.h”中,而他的实现则是在“Hello WorldDoc.cpp”文件中。

  3、 视图类及其相关的文件

  视图类是用来显示文档对象的内容的,我们在Word程序中所看到的界面就是一个视图,我们要修改,画图首先操作的对象就是视图,所以,视图类就如他的名称所指出的那样,提供了从用户角度看到的东西。视图类的定义在“Hello WorldView.h”中,实现是在文件“Hello WorldView.h”中。

  4、 应用程序类及其相关的文件

  MFC应用程序的初始化,启动运行和结束都是由应用程序对象完成的。他对应的文件是”Hello World.cpp”和”Hello World.h”。

  在大致的了解了应用程序对象的作用之后,现在我们来看看它们之间的关系(如下图所示)。



  从上面的图中可以大致的看出MFC应用程序对象之间的关系了。应用程序一开始(此处的内容可以参考上一篇)生成应用程序对象,然后,在InitInstance中创建中将会创建文档模板对象(通过CdocManager管理),这样一来,应用程序就可以通过建立的模板对象来管理文档、视图、和框架窗口。

  至此,我的这篇文章终于可以暂时告一段落了,在文中我主要分析的是应用程序的框架,所以忽略了很多的实现细节。其实,学习MFC是一个非常漫长的路,处在不同的阶段都会产生不同的看法和认识,相信随着学习的深入,每一个人都会有自己的理解。但是在这里我给出的自己的经验就是:在学习MFC的时候,一定要在宏观上对他的应用程序框架有个感性的认识!因为这样之后,我们就会在学习的时候有个明显的方向,知道自己学习的是什么东西。我在一开始的时候,就没有认识到这一点,所以往往在学习过程中,往往会不知道下一步应该做什么,也不明白自己看的东西是做什么用的。希望通过这篇文章可以与大家一起学习!

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章