打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MFC基本介绍
MFC的类层次结构:
           
 
 如上图所示:
           CObject:是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化等。
           CCmdTarget:主要负责将系统事件(消息)和窗口事件(消息),发送给响应这些事件的对象,完成消息发送、等待和派遣调度等工作,实现应用程序的对象之间协调运行。
           CWinApp:是应用程序的主线程类,它是从CWinThread类派生而来的。CWinThread类用来完成对线程的控制,包括线程的创建、运行、终止和挂起等。
           CDocument:是文档类,包含了应用程序运行期间所用到的数据。
           CWnd:是一个通用的窗口类,用来提供Windows中的所有通用特性、对话框和控件。
           一个MFC程序,必须包含一个派生自CWinApp的线程类,即C*App类,每一个MFC框架程序中都有且只有一个C*App的全局变量(对象)即theApp
           MFC正是利用类的这种"自动调用相应的构造函数"特性,使得WinMain()函数的调用变成了应用程序框架内部的调用,所以我们在代码中看不到每个Windows程序所必须有的WinMain()函数。C++规定,全局对象的构建将比程序进入点(在dos环境下为main,在Windows环境为WinMain)更早。所以theApp的构造函数将更早与main。
           C++中子类的构造函数执行在父类之后。系统执行theApp的够造函数时,先调用基类(CObject-->....CWinApp)的构造函数,进行一系列的内部初始化操作,然后自动调用C*App的虚函数InitInstance(),该函数会进一步调用相应的函数来完成主窗口的构造和显示工作。下面来看看上述程序中InitInstance的执行过程。

           首先执行的是:

            m_pMainWnd = new CMainFrame;

          该语句用来创建从CFrameWnd类派生而来的用户框架窗口CMainFrame类对象,继而调用该类的构造函数,使得Create函数被调用,完成了窗口创建工作。

          然后执行后面两句:

             m_pMainWnd->ShowWindow(m_nCmdShow);
             m_pMainWnd->UpdateWindow();

            用作窗口的显示和更新。接下来调用:

            m_pMainWnd->MessageBox("你好,欢迎进入MFC世界!");

           最后返回TRUE,表示窗口创建成功。

          InitInstance()完成初始化工作之后,接下来就是调用基类CWinApp的成员函数Run(),执行应用程序的消息循环,即重复执行接收消息并转发消息的工作。当Run()检查到消息队列为空时,将调用基类CWinApp的成员函数OnIdle进行空闲时的后台处理工作。若消息队列为空且又没有后台工作要处理时,则应用程序一直处于等待状态,一直等到有消息为止。

        当程序结束后,调用基类CWinApp的成员函数ExitInstance(),完成终止应用程序的收尾工作。这就是MFC应用程序的运行机制。








本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
技术资料-【剖析MFC六大关键技术之初始化过程】
Visual C .NET编程讲座之二(3)
MFC内部运行机制
Windows编程之MFC窗口程序浅析
MFC 机制
MFC基于对话框基础程序解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服