CCreateContext 结构
框架在创建与文档关联的框架窗口和视图时使用 CCreateContext
结构。
语法
struct CCreateContext
备注
CCreateContext
是一个结构,没有基类。
创建窗口时,此结构中的值提供用于将文档组件连接到其数据视图的信息。 仅当重写部分创建过程时才需使用 CCreateContext
。
CCreateContext
结构包含指向文档、框架窗口、视图和文档模板的指针。 它还包含指向 CRuntimeClass
(用于标识要创建的视图类型)的指针。 运行时类信息和当前文档指针用于动态创建新视图。 下表提供如何以及何时使用每个 CCreateContext
成员的建议:
成员 | 类型 | 用途 |
---|---|---|
m_pNewViewClass |
CRuntimeClass* |
要创建的新视图的 CRuntimeClass 。 |
m_pCurrentDoc |
CDocument* |
要与新视图关联的现有文档。 |
m_pNewDocTemplate |
CDocTemplate* |
与创建新 MDI 框架窗口关联的文档模板。 |
m_pLastView |
CView* |
用于对其他视图进行建模的原始视图,如创建拆分器窗口视图或在文档中创建第二个视图。 |
m_pCurrentFrame |
CFrameWnd* |
用于对其他框架窗口进行建模的框架窗口,如在文档中创建第二个框架窗口。 |
当文档模板创建文档及其关联的组件时,它会验证 CCreateContext
结构中存储的信息。 例如,不应为不存在的文档创建视图。
注意
CCreateContext
中的所有指针都是可选的,并且可以是 NULL
(如果未指定或未知)。
CCreateContext
由“另请参阅”下列出的成员函数使用。如果计划重写这些函数,请参阅这些函数的说明以了解具体信息。
下面是一些通用准则:
当为了创建窗口将创建上下文作为参数进行传递(如在
CWnd::Create
、CFrameWnd::Create
和CFrameWnd::LoadFrame
中)时,创建上下文指定新窗口应连接的目标。 对于大多数窗口,整个结构是可选的,并且可以传递NULL
指针。对于可重写的成员函数,例如
CFrameWnd::OnCreateClient
,CCreateContext
参数是可选的。对于创建视图时涉及的成员函数,必须提供足够的信息来创建视图。 例如,对于拆分器窗口中的第一个视图,必须提供视图类信息和当前文档。
一般情况下,如果使用框架默认值,则可以忽略 CCreateContext
。 如果尝试进行更高级的修改,Microsoft 基础类库源代码或示例程序(如 VIEWEX)将提供指导。 如果确实忘记了所需的参数,框架断言可提供你忘记的内容。
有关 CCreateContext
的详细信息,请参阅 MFC 示例 VIEWEX。
要求
标头:afxext.h
另请参阅
层次结构图
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create