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:
Member | 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::Create
eCFrameWnd::LoadFrame
, il contesto di creazione specifica a quale nuova finestra deve essere connessa. Per la maggior parte delle finestre, l'intera struttura è facoltativa e unNULL
puntatore può essere passato.Per le funzioni membro sostituibili, ad esempio
CFrameWnd::OnCreateClient
, l'argomentoCCreateContext
è 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