CDocument::OnNewDocument
Komut dosyasını yeni bir parçası olarak framework tarafından çağrıldı.
virtual BOOL OnNewDocument( );
Dönüş Değeri
Belge başarıyla başlatıldı, sıfır olmayan; Aksi halde 0.
Notlar
Bu işlev varsayılan uygulama çağrıları DeleteContents belge boş ve temiz olarak yeni belge işaretler emin olmak için üye işlevi. Yeni bir belge için veri yapısı başlatılamıyor bu işlevi geçersiz kılar. Bu işlevi temel sınıf sürümü, geçersiz kılma çağırmalıdır.
Kullanıcı bir SDI uygulamasında dosya yeni komutu seçerse, çerçevesi yenilerini oluşturmak yerine varolan bir belgeyi yeniden başlatmak için bu işlevi kullanır. Kullanıcı birden çok belge arabirim (MDI) uygulamasında yeni dosya seçerse, çerçeve her zaman yeni bir belge oluşturur ve sonra başlatmak üzere bu işlevini çağırır. Başlatma kodu yerine bu işlevi SDI uygulamasında etkili olması yeni dosya komutunun kurucusunda koymanız gerekir.
Vardır Not durumda nereye OnNewDocument iki kez çağrılır. Bu belge ActiveX belge sunucusu olarak katıştırılmış ortaya çıkar. İşlev ilk arayan CreateInstance yöntemi (tarafından sergilenen COleObjectFactory-türetilmiş sınıf) ve bir kez InitNew yöntemi (tarafından sergilenen COleServerDoc-türetilmiş sınıf).
Örnek
Aşağıdaki örnekte, belge nesnesi başlatılırken alternatif yöntemler görülmektedir.
// 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;
}
Gereksinimler
Başlık: afxwin.h