CDocument::OnNewDocument
Wywołana przez RAM jako część polecenia nowy plik.
virtual BOOL OnNewDocument( );
Wartość zwracana
Niezerowa, jeśli dokument został pomyślnie zainicjowany; 0 inaczej.
Uwagi
Domyślne tej funkcji wymaga DeleteContents funkcji Członkowskich do zapewnienia, że dokument jest pusty i znaków towarowych nowy dokument jako czyste.Zastąpienie tej funkcji, aby zainicjować struktury danych dla nowego dokumentu.Klasa podstawowa wersja tej funkcji należy wywołać z sieci override.
Jeśli użytkownik wybierze polecenie Nowy plik w aplikacji SDI, ramy tej funkcji używa zainicjować istniejącego dokumentu, zamiast tworzenia nowej.Jeśli użytkownik zdecyduje się na nowy plik w wielu aplikacji interfejsu (MDI) dokumentu, ramach tworzy nowy dokument w każdym i następnie wywołuje tę funkcję, aby go zainicjować.Kod inicjowania musi umieścić w tej funkcji, zamiast w konstruktorze nowy plik polecenia skuteczne w aplikacji SDI.
Należy zauważyć, że istnieją przypadków, gdy OnNewDocument jest wywoływana dwa razy.Dzieje się tak, gdy dokument jest osadzony jako serwer dokumentu ActiveX.Funkcja najpierw jest wywoływana przez CreateInstance metody (przez COleObjectFactory-klasy) i po raz drugi, przez InitNew metody (przez COleServerDoc-klasy).
Przykład
Poniższe przykłady ilustrują alternatywne metody inicjowania obiektu 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;
}
Wymagania
Nagłówek: afxwin.h