现在的位置: 首页 > 综合 > 正文

MFC初步之框架理解

2013年09月01日 ⁄ 综合 ⁄ 共 1601字 ⁄ 字号 评论关闭

     MFC----微软基础类。微软根据市场需要用C++开发出了一系列基于windows的类,这些类就以API类似的方式被用户调用,缩短开发周期。

     像DOS程序类似,每个基于MFC的用户程序都有一个WinMain函数,该函数是应用程序的入口,其余函数必须在该函数中被调用。但在visual stdio中却看不到该函数,因为微软应经将其封装好了,利用向导生成框架程序过程中就应经完成了框架的构建和相关代码的添加。在链接过程中,会将WinMain函数链接进应用程序。

     每个MFC程序都有一个APP类,该类唯一的标示一个应用程序。应用程序中会定义一个theApp全局对象。在编译程序时,首先会初始化所有的全局变量,所以会调用它的构造函数,而它又是从其父类CWinApp派生的,进一步调用其父类的构造函数。在其构造函数中会调用调用_tWinMain()函数。该函数实际是通过AfxWinMain函数实现的,AFX代表应用程序框架函数,应用程序框架实际上是一套辅助生成应用程序的框架模型,该模型把多个类进行了一个有机的集成,可以根据模型提供的方案来设计自己的应用程序。以AFX开头的函数都是全局函数。

MFC框架窗口

    1、设计注册窗口

           MFC设计了一系列默认的窗口类,只要调用和注册这些窗口类就可以了。由AfxEndDeferRegisterClass进行注册。

     2、创建窗口

           窗口的创建功能由CWnd类的CreatEx函数实现。该函数的声明在AFXWin.h文件中,实现代码在WINCORE.CPP文件中。

     3、显示更新窗口

            CTestApp类的InitInstance函数实现内部有如下代码:

                                                                                            m_pMainWnd->ShowWindow(SW_SHOW);

                                                                                            m_pMainWnd->UpdateWindow();

MFC程序运行过程

       1、利用全局应用程序对象theApp启动应用程序。

       2、调用应用程序全局对象的构造函数完成应用程序的初始化工作。

       3、进入WinMain函数。

       4、进入消息循环,当收到WM_QUIT消息时,退出消息循环,应用程序结束。

MFC SDI应用程序的基本框架

       当用 App Wizard生成应用程序框架的时候,会产生4个基本应用程序类:CTest1App(应用程序类)、CMainFrame(主框架窗口类)、CTest1Doc(文档类)、CTest1View(视图类)。

        CTest1App类的作用是用来管理整个应用程序,完成应用程序的例行初始化,统一管理应用程序收到的消息,并把消息分配给应用程序的其他对象,最后完成应用程序的清理。

        CMainFrame类负责管理程序的主窗口,包含标题栏,状态栏,工具,最大化等功能。不需要用户对此类进行操作,因为它继承了windows对消息处理的特性。

        CTest1Doc类负责数据的读入和写出,并进行I/O操作,文档类封装了应用程序的数据管理功能。

         CTest1View负责将读入的数据进行显示,该类和文档类进行交互,它是框架窗口的子窗口。

         类与类之间的交互是通过windows的消息进行传递的,通过调用类的公有数据成员进行操作。

              

          

抱歉!评论已关闭.