Struttura CCreateContext

Il framework usa la CCreateContext struttura quando crea le finestre cornice e le visualizzazioni associate a un documento.

Sintassi

struct CCreateContext

Osservazioni:

CCreateContext è una struttura e non dispone di una classe di base.

Quando si crea una finestra, i valori di questa struttura forniscono le informazioni utilizzate per connettere i componenti di un documento alla visualizzazione dei relativi dati. È necessario usare CCreateContext solo se si esegue l'override di parti del processo di creazione.

Una CCreateContext struttura contiene puntatori al documento, alla finestra cornice, alla visualizzazione e al modello di documento. Contiene anche un puntatore a un CRuntimeClass oggetto che identifica il tipo di visualizzazione da creare. Le informazioni sulla classe di runtime e il puntatore al documento corrente vengono usati per creare una nuova visualizzazione in modo dinamico. La tabella seguente suggerisce come e quando è possibile usare ogni CCreateContext membro:

Membro Type Che cos'è per
m_pNewViewClass CRuntimeClass* CRuntimeClass della nuova visualizzazione da creare.
m_pCurrentDoc CDocument* Documento esistente da associare alla nuova visualizzazione.
m_pNewDocTemplate CDocTemplate* Modello di documento associato alla creazione di una nuova finestra cornice MDI.
m_pLastView CView* Visualizzazione originale in cui vengono modellate visualizzazioni aggiuntive, come nella creazione di visualizzazioni finestra di divisione o nella creazione di una seconda visualizzazione in un documento.
m_pCurrentFrame CFrameWnd* Finestra cornice in cui vengono modellate finestre cornice aggiuntive, come nella creazione di una seconda finestra cornice in un documento.

Quando un modello di documento crea un documento e i relativi componenti associati, convalida le informazioni archiviate nella CCreateContext struttura. Ad esempio, una visualizzazione non deve essere creata per un documento inesistente.

Nota

Tutti i puntatori in CCreateContext sono facoltativi e possono essere NULL se non specificati o sconosciuti.

CCreateContext viene usato dalle funzioni membro elencate in "Vedere anche". Consultare le descrizioni di queste funzioni per informazioni specifiche se si prevede di eseguirne l'override.

Ecco alcune linee guida generali:

  • Quando viene passato come argomento per la creazione della finestra, come in CWnd::Create, CFrameWnd::Createe CFrameWnd::LoadFrame, il contesto di creazione specifica a quale nuova finestra deve essere connessa. Per la maggior parte delle finestre, l'intera struttura è facoltativa e un NULL puntatore può essere passato.

  • Per le funzioni membro sostituibili, ad esempio CFrameWnd::OnCreateClient, l'argomento CCreateContext è facoltativo.

  • Per le funzioni membro coinvolte nella creazione della visualizzazione, è necessario fornire informazioni sufficienti per creare la vista. Ad esempio, per la prima visualizzazione in una finestra di divisione, è necessario specificare le informazioni sulla classe di visualizzazione e il documento corrente.

In generale, se si usano le impostazioni predefinite del framework, è possibile ignorare CCreateContext. Se si tentano modifiche più avanzate, il codice sorgente della libreria di classi Microsoft Foundation o i programmi di esempio, ad esempio VIEWEX, guiderà l'utente. Se si dimentica un parametro obbligatorio, un'asserzione del framework indicherà cosa si è dimenticato.

Per altre informazioni su CCreateContext, vedere l'esempio MFC VIEWEX.

Requisiti

Intestazione: afxext.h

Vedi anche

Grafico della gerarchia
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create