Sdílet prostřednictvím


CDocument::OnOpenDocument

Volat rozhraní jako součást příkazu Otevřít soubor.

virtual BOOL OnOpenDocument(
   LPCTSTR lpszPathName 
);

Parametry

  • lpszPathName
    Body na cestu k otevření dokumentu.

Vrácená hodnota

Nenulová hodnota, pokud dokument byl úspěšně načten. jinak 0.

Poznámky

Výchozí implementace této funkce otevře zadaný soubor volání DeleteContents volá členské funkce zajistit, že dokument je prázdný, CObject::Serialize číst soubor jeho obsah a označí jako čisté.Tato funkce přepsat, pokud chcete použít něco než mechanismus archivu nebo soubor mechanismus.Mohou například zapisovat kde dokumenty představují záznamy v databázi než samostatné soubory aplikace.

Pokud uživatel zvolí příkaz Otevřít soubor aplikace SDI, rámci používá tuto funkci znovu inicializovat existující CDocument objekt místo vytvoření nového.Pokud uživatel zvolí otevřít soubor MDI aplikace, vytvoří nový rámci CDocument každém objektu a pak volání této funkce můžete inicializovat.Inicializace kódu je nutné umístit v této funkci místo v konstruktoru otevřít soubor příkazu účinný v aplikace SDI.

Příklad

Následující příklady ilustrují alternativní metody inicializaci objektu dokumentu.

// Method 1: In an MDI application, the simplest place to do 
// initialization is in the document constructor.  The framework 
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}
// Method 2: In an SDI or MDI application, do all initialization 
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   // Do initialization of new document here.

   return TRUE;
}
// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}
// Additional example of OnOpenDocument()
BOOL CExampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
   if (!CDocument::OnOpenDocument(lpszPathName))
      return FALSE;

   InitMyDocument(); // call your shared initialization function

   return TRUE;
}

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CDocument

Diagram hierarchie

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnNewDocument

CDocument::OnSaveDocument

CDocument::ReportSaveLoadException

CObject::Serialize