MFC学习笔记1_MFC应用程序架构

    最近开始了新的项目,要求在现有项目基础上进行二次开发以及改进。现有项目使用vc++6.0, MFC开发。

MFC的本质就是一个包含许多微软已经定义好的对象的类库,虽然不同的程序功能上千差万别,但本质上来讲都可以划分为:1.用户界面设计 2.文件操作 3.多媒体 4.数据库 等方面,这也是MFC存在的价值。如果类库中的对象能够完成功能,只需要简单调用就可以;如果不能满足功能,则可以继承已有类派生出自己的对象;当然也可以派生出全新的对象。简言之就是编程时候不必关心对象方法的实现细节,简化windows编程。

MFC对象层次类似于目录结构组织方式:

MFC学习笔记1_MFC应用程序架构_第1张图片


(1)基本类CObject

为每个派生类提供基本功能。

(2)基本类CCmdTarget

从CCmdTarget类派生的类可以接受并处理由应用程序的菜单或者工具栏发出的命令消息。

(3)CWnd

派生与CCmdTarget,成员函数封装了负责创建和维护窗口的windows API。所有其他控件窗口的MFC类都由该类派

生。

MFC应用程序

MFC应用程序有4个主要类:CWinApp,CMainFrame,CMyView,CMyDoc。(My是项目名称)

(1)CWinApp类,主线程类。主要用于消息处理,统一管理程序收到的所有消息,然后把消息分配到相应的对象

中。由CWnd类派生。该类含有一个重要的成员函数InitInstance,在Windows环境下可以运行统一程序的多个实

例,该函数负责生成新实例时的初始化工作。

InitIntance函数工作如下:定义一个文档模板的对象指针pDocTemplate,new一个该文档的模板对象,然后使用

AddDocTemplate函数把这个文档模板对象加载到应用程序维护的文档模板链表中。文档模板pDocTemplate的作用

就是把应用程序用到的框架窗口如CMainFrame,文档CMyDoc,视窗CMyView与应用对象CWinApp联系起来。

(2)CMainFrame类,有CFramWnd派生,框架窗口。它是CMyView的父类,即CMyView类的对象显示在主框架窗口

的客户区中。在MFC程序中不需要经常对CMainFrame类进行操作,而是对视窗类CMyView进行操作,从而达到对程

中的数据进行编辑和修改的目的。

当程序的一个实例被运行时,系统将根据前面在WinApp类中介绍的文档模板对象自动生成CMainFrame,CMyView,

CMyview的对象而不用主动创建这些对象。

(3)CMyView和CMyView。两个类密切相关,文档由文档模板对象生成,并由应用程序对象管理,而用户则是通

与文档相关联的视窗对象来操作数据、交互。

MFC学习笔记1_MFC应用程序架构_第2张图片

你可能感兴趣的:(MFC)