CDocument:: OnOpenDocument

Virtual BOOL OnOpenDocument ( LPCTSTR lpszPathName );

Valore restituito

Diverso da zero se il documento è stato caricato con successo; in caso contrario 0.

Parametri

lpszPathName

Punti al percorso del documento da aprire.

Osservazioni

Chiamato dal framework come parte del comando Apri File. L'implementazione predefinita di questa funzione apre il file specificato, chiama la funzione membro DeleteContents per garantire che il documento è vuoto, chiama CObject::Serialize per leggere il contenuto del file e poi segna il documento come pulito. Eseguire l'override di questa funzione se si desidera usare qualcosa di diverso meccanismo di archivio o il meccanismo di file. Ad esempio, si potrebbe scrivere un'applicazione dove documenti rappresentano record in un database anziché in file separati.

Se l'utente sceglie il comando Apri File in un'applicazione SDI, il framework utilizza questa funzione per reinizializzare l'oggetto CDocument esistente, piuttosto che crearne uno nuovo. Se l'utente sceglie Apri File in un'applicazione MDI, il framework crea un nuovo oggetto CDocument ogni volta e quindi chiama questa funzione per inizializzarlo. È necessario inserire il codice di inizializzazione in questa funzione anziché nel costruttore per il comando Apri 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 anchenbsp;CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::On&NewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject::Serialize

Index