Структура 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::CreateCFrameWnd::Create, и CFrameWnd::LoadFrame, в контексте создания нового окна указывается, к чему должно быть подключено новое окно. Для большинства окон вся структура является необязательной NULL , а указатель можно передать.

  • Для переопределения функций-членов, таких как CFrameWnd::OnCreateClientCCreateContext , аргумент является необязательным.

  • Для функций-членов, участвующих в создании представления, необходимо предоставить достаточно сведений для создания представления. Например, для первого представления в окне разделения необходимо указать сведения о классе представления и текущий документ.

Как правило, если вы используете платформу по умолчанию, можно игнорировать CCreateContext. При попытке более сложных изменений исходный код библиотеки классов Microsoft Foundation или примеры программ, таких как VIEWEX, поможет вам. Если вы забыли обязательный параметр, утверждение платформы сообщит вам о том, что вы забыли.

Дополнительные сведения см CCreateContext. в примере VIEWEX для MFC.

Требования

Заголовок: afxext.h

См. также

Диаграмма иерархии
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create