毕业设计网
开发环境 |

vc++基础CCreateContext 解析

 

CCreateContext没有基类。
在主程序创建框架窗口、以及文档相关的视图时,会使用CCreateContext结构。建立窗口时,此结构中的值用于连接构成文档的组件和文档数据的视图。仅当覆盖了创建过程时才需要使用CCreateContext。
CCreateContext结构包含了指向文档、框架窗口和文档模板的指针,包括了一个CRuntimeClass指针,CRuntimeClass标志了待创建的视图的类型。运行时类信息和当前文档指针用于动态地创建视图。下表列出了CCreateContext的每个成员的用法: 成员  用途 
m_pNewViewClass  待创建的视图的CRuntimeClass 
m_pCurrentDoc  将在其上创建视图的文档 
m_pNewDocTemplate  待创建的新MDI框架窗口的文档模板 
m_pLastView  待创建视图所依据的原始视图,例如在创建分裂窗口的视图或文档的第二个框架窗口时 
m_pCurrentFrame  待创建框架窗口所依据的框架窗口,例如在文档上创建第二个框架窗口时 

当在文档模板上创建一个文档及其相关的组件时,它检查存储在CCreateContext结构中的信息的有效性。例如,不能在一个不存在的文档上建立视图。
注意:
CCreateContext结构中的所有指针都是可选的,在不需要或者未知时可设为NULL。
“请参阅”部分列出的函数会用到CCreateContext结构。在覆盖这些函数之前,最好看以下对它们的详细说明。
以下是一些通用的指导原则: ·  CCreateContext作为创建窗口时的参数,如CWnd::Create、CFrameWnd:Create和CFrameWnd::LoadFrame,CCreateContext指定了新窗口应连接到的地方。对多数窗口来说,整个结构都是可选的,可传递一个NULL指针。 
·  对于可覆盖的函数,例如CFrameWnd::OnCreateClient,参数CCreateContext也是可选的。 
·  对那些在创建视图时使用的函数来说,必须在调用时提供足够的信息以建立视图。例如,对分裂窗口中的第一个视图,必须提供视图的类信息和当前的文档。 
一般说来,如果使用了框架的缺省设置,就可以忽略CCreateContext结构。如果想进行一些高级的修改,MFC类库源代码或例子程序(如VIEWEX)可以提供参考。如果记不清参数的使用,框架中提供的断言将有助于发现参数使用的错误。
要了解有关CCreateContext的更详细的信息,请参阅MFC的例子VIEWEX。
#include <afxext.h>

请参阅:
CFrameWnd::Create, CFrameWnd::LoadFrame, CFrameWnd::OnCreateClient, CSplitterWnd::Create, CSplitterWnd::CreateView, CWnd::Create
 
 

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:vc的代码中有N' T' L'是什么意思啊
下一篇:VC中#ifdef与#pragma once避免重复包含的区别


版权所有 毕业设计网联系qq:242219979 © 2007-2022