在WIN32应用程序中使用MFC于MFC框架创建的应用程序流程基本上一致的,不同之处是对MFC框架的使用。
MFC应用程序流程
应用程序类继承CWinAppEx(类似CWinApp),编译时注入的WinMain函数利用多态机制实现应用程序初始化:
与WIN32中使用MFC基本相同,不同的地方主要需要了解的是关于文档模板的处理:
Win32中使用MFC流程是创建一个框架类对象,并且把指针赋与应用程序类的 m_pMainWnd,然后显示和更新窗口。
单文档应用程序则使用文档模板的方式,一次性创建出三口组(文档、框架、视图)
利用资源ID、文档类、框架类、视图类,进行动态创建。动态创建是MFC关键技术之一,类似于JAVA的反向注入机制,在运行中通过动态指定的类名创建对象。
利用创建新文档的命令机制来实现三口组的创建
跟踪到appui2.cpp
可以看到出现了一个创建新文件的命令消息,转入应用程序类消息响应:
调用文档模板管理类的OnFileNew()
调用单文档模板类的 OpenDocumentFile 创建文档、创建框架
然后到了熟悉的LoadFrame(与 CreateWindow类似)
从而创建视图。
至此,三口组完成了创建和绑定(由模板类实现)。
PS:以上流程可以利用VS的调试功能来进行跟踪。