Sdílet prostřednictvím


CDocument::OnNewDocument

Volat rozhraní jako součást příkazu nový soubor.

virtual BOOL OnNewDocument( );

Vrácená hodnota

Nenulová hodnota, pokud dokument byl úspěšně inicializován. jinak 0.

Poznámky

Výchozí implementace této funkce volání DeleteContents aby prázdný dokument a poté nový dokument jako čisté označí členské funkce.Tato funkce se inicializovat strukturu dat pro nový dokument přepsat.Základní třída verze této funkce by měla zavolat z vaší přepsat.

Pokud uživatel zvolí příkaz Nový soubor aplikace SDI, rámci používá tuto funkci znovu inicializovat existujícího dokumentu namísto vytvoření nové.Pokud uživatel zvolí nový soubor v aplikaci rozhraní více dokumentů, vytvoří nový dokument při každém rámci a potom volání této funkce můžete inicializovat.Inicializace kódu je nutné umístit v této funkci místo v konstruktoru nový soubor příkazu účinné v aplikacích SDI.

Všimněte si, že existují případů OnNewDocument je volána dvakrát.Tím dojde k dokumentu je vložený dokument serveru ActiveX.Nejprve volány funkce CreateInstance metody (prezentována COleObjectFactory -odvozené třídy) a podruhé v InitNew metody (prezentována COleServerDoc -odvozené třídy).

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;
}

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CDocument

Diagram hierarchie

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument