Структура 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 Foundation или примеры программ, таких как VIEWEX, поможет вам. Если вы забыли обязательный параметр, утверждение платформы сообщит вам о том, что вы забыли.
Дополнительные сведения см CCreateContext
. в примере VIEWEX для MFC.
Требования
Заголовок: afxext.h
См. также
Диаграмма иерархии
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create