Compartilhar via


Estrutura CCreateContext

A estrutura usa a estrutura CCreateContext quando cria as janelas de quadro e as exibições associadas a um documento.

Sintaxe

struct CCreateContext

Comentários

CCreateContext é uma estrutura e não tem uma classe base.

Quando você cria uma janela, os valores nessa estrutura fornecem as informações usadas para conectar os componentes de um documento à exibição de seus dados. Você só precisará usar CCreateContext se estiver substituindo partes do processo de criação.

Uma estrutura CCreateContext contém ponteiros para o documento, a janela de quadro, o modo de exibição e o modelo de documento. Ela também contém um ponteiro para um CRuntimeClass que identifica o tipo de exibição a ser criado. As informações de classe em tempo de execução e o ponteiro do documento atual são usados para criar uma exibição dinamicamente. A seguinte tabela sugere como e quando cada membro CCreateContext pode ser usado:

Membro Tipo Para que serve
m_pNewViewClass CRuntimeClass* CRuntimeClass do novo modo de exibição a ser criado.
m_pCurrentDoc CDocument* O documento a ser associado ao novo modo de exibição.
m_pNewDocTemplate CDocTemplate* O modelo de documento associado à criação de uma nova janela de quadro MDI.
m_pLastView CView* O modo de exibição original no qual exibições adicionais são modeladas, como na criação de exibições de janela de divisor ou na criação de uma segunda exibição em um documento.
m_pCurrentFrame CFrameWnd* A janela de quadro na qual janelas de quadros adicionais são modeladas, como na criação de uma segunda janela de quadro em um documento.

Quando um modelo de documento cria um documento e seus componentes associados, ele valida as informações armazenadas na estrutura CCreateContext. Por exemplo, um modo de exibição não deve ser criado para um documento inexistente.

Observação

Todos os ponteiros em CCreateContext são opcionais e podem ser NULL, se não especificados ou se desconhecidos.

CCreateContext é usado pelas funções de membro listadas em "Ver também". Confira as descrições dessas funções para informações específicas se você planeja substituí-las.

Aqui estão algumas diretrizes gerais:

  • Quando passado como um argumento para a criação da janela, como em CWnd::Create, CFrameWnd::Create e CFrameWnd::LoadFrame, o contexto de criação especifica a que a nova janela deve ser conectada. Para a maioria das janelas, toda a estrutura é opcional e um ponteiro NULL pode ser passado.

  • Para funções de membro substituíveis, como CFrameWnd::OnCreateClient, o argumento CCreateContext é opcional.

  • Para funções membro envolvidas na criação de exibição, você deve fornecer informações suficientes para criar a exibição. Por exemplo, para a primeira exibição em uma janela de divisor, você deve fornecer as informações de classe de exibição e o documento atual.

Em geral, se você usar os padrões da estrutura, poderá ignorar CCreateContext. Se você tentar modificações mais avançadas, o código-fonte da biblioteca Microsoft Foundation Class ou os programas de exemplo, como VIEWEX, orientarão você. Se você esquecer um parâmetro obrigatório, uma declaração de estrutura dirá o que você esqueceu.

Para mais informações sobre CCreateContext, confira o exemplo do MFC VIEWEX.

Requisitos

Cabeçalho: afxext.h

Confira também

Gráfico da hierarquia
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create