Virtual BOOL OnNewDocument ( );
Valore restituito
Diverso da zero se il documento è stato inizializzato con successo; in caso contrario 0.
Osservazioni
Chiamato dal framework come parte del comando Nuovo File. L'implementazione predefinita di questa funzione chiama la funzione membro DeleteContents per garantire che il documento è vuoto e poi segna il nuovo documento pulita. Eseguire l'override di questa funzione per inizializzare la struttura dei dati per un nuovo documento. Si dovrebbe chiamare la versione della classe base di questa funzione dall'override.
Se l'utente sceglie il comando Nuovo File in un'applicazione SDI, il framework utilizza questa funzione per reinizializzare il documento esistente, piuttosto che crearne uno nuovo. Se l'utente sceglie nuovi File in un'applicazione di multiple document interface (MDI), il framework crea un nuovo documento ogni volta e quindi chiama questa funzione per inizializzarlo. È necessario inserire il codice di inizializzazione in questa funzione anziché nel costruttore per il comando Nuovo File essere efficace in applicazioni SDI.
Esempio
/ / Gli esempi seguenti illustrano metodi alternativi di
/ / l'inizializzazione di un oggetto document.
/ / Metodo 1: In un'applicazione MDI, il luogo più semplice da fare / / inizializzazione è in constructor.nbsp il documento; Quadro / / crea sempre un nuovo oggetto documento per il nuovo File o Apri File.
CMyDoc::CMyDoc()
{
/ / Do inizializzazione del documento MDI qui.
// ...
}
/ / Metodo 2: In un'applicazione SDI o MDI, fare tutti inizializzazione / / in un'override di On&NewDocument, se si è certi che
/ / l'inizializzazione è effettivamente salvato su File Salva
/ / e completamente restaurato su Apri File, tramite la serializzazione.
BOOL CMyDoc::OnNewDocument()
{
if (!.CDocument::OnNewDocument())
return FALSE;
/ / Do inizializzazione di un nuovo documento qui.
return TRUE;
}
/ / Metodo 3: se l'inizializzazione del documento non è
/ / effettivamente salvato e restaurato dalla serializzazione (durante il salvataggio del File
/ / e File Open), quindi implementare l'inizializzazione in singola
/ / funzione (chiamato InitMyDocument in questo esempio). Chiamare il
/ / condiviso la funzione di inizializzazione da sostituzioni di entrambi
/ / OnNewDocument e OnOpenDocument.
BOOL CMyDoc::OnNewDocument()
{
if (!.CDocument::OnNewDocument())
return FALSE;
InitMyDocument(); / / chiama la funzione di inizializzazione condivisa
/ / Se il nuovo oggetto documento richiede ulteriore inizializzazione
/ / non è necessaria quando il documento viene deserializzato tramite File Open
/ / eseguire quindi che l'inizializzazione aggiuntivo qui.
return TRUE;
}
CDocument panoramica |nbsp; Membri della classe | Gerarchia Chart
Vedere a&nchenbsp;CDocument::CDocument, CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument:: OnOpenDocument, CDocument::OnSaveDocument