Welcome

首页 / 软件开发 / C++ / MFC教程(5)-- MFC对象的创建(2)

MFC教程(5)-- MFC对象的创建(2)2010-03-25从这些图中可以看到何时、何处调用了什么消息处理函数和虚拟函数,这些函数用来作了什么事情。必要的话,程序员可以在派生类覆盖它们。

在创建工作完成之后,进行初始化,使用文档对象的数据来更新视和显示窗口。

至此,本节描述了MFC的SDI程序从分析命令行到创建或打开文件的处理过程,文档对象已经动态创建。总结如下:

命令行分析→应用程序的FileNew→文档模板的OpenDocumentFile(NULL)→文档的OnNewDocument

命令行分析→应用程序的FileOPen→文档模板的OpenDocumentFile(filename)→文档的OpenDocument

边框窗口对象、视对象的动态创建和对应 Windows对象的创建从LoadFrame开始,这些将在下一节论述。

SDI边框窗口的创建

第三步是创建SDI边框窗口。

图5-8已经分析了创建SDI边框窗口的时机和创建方法,下面,从LoadFrame开始分析整个窗口创建过程。

CFrameWnd::LoadFrame

CFrameWnd::LoadFrame的流程如图5-11所示,其原型如下:

BOOL CFrameWnd::LoadFrame(UINT nIDResource,

DWORD dwDefaultStyle,

CWnd* pParentWnd,

CCreateContext* pContext)

第一个参数是和该框架相关的资源ID,包括字符串、快捷键、菜单、像标等;

第二个参数指定框架窗口的“窗口类”和窗口风格;此处创建SDI窗口时和缺省值相同,为WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE;

第三个参数指定框架窗口的父窗口,此处和缺省值相同,为NULL;

第四个参数指定创建的上下文,如图5-8所示由CreateNewFrame生成了该变量并传递给LoadFrame。其缺省值为NULL。