总结下SDI的创建过程。供日后查阅。
首先定义一个全局变量(app类),在对应类(app类)的InitInstance()中定义单文档模板类CDocTemplate 类型,此模板类将框架的创建,视图的创建,以及视图与文档的创建结合起来,其构造参数的三个参数指定了“文档类,框架类,视图类”的CRunClass类型。
框架窗口的创建始于CSingleDocTemplate::OpenDocument(),
在此函数中通过CreateNewDocument()创建了文档对象。
通过CreateNewFrame()创建了对应的框架窗口。
在CreateNewFrame()函数中通过CreateObject()动态创建了C++对象(CFrameWnd 类),再调用loadFrame()函数。(loadFrame()函数中注册窗口类并调用Create()创建窗口)。
preCreateWindow()是CWnd类的虚函数,CFrameWnd对其进行了重载。
如果修改框架窗口的风格尺寸,可以在CCFrameWnd派生类中重载preCreateWindow()函数,并在其中编辑cs相应字段即可。