Aracılığıyla paylaş


CDocument::OnOpenDocument

Dosya Aç komutu bir parçası olarak framework tarafından çağrıldı.

virtual BOOL OnOpenDocument(
   LPCTSTR lpszPathName 
);

Parametreler

  • lpszPathName
    Açılacak belge noktaları yolu.

Dönüş Değeri

Belge başarıyla yüklendiyse, sıfır olmayan; Aksi halde 0.

Notlar

Bu işlev varsayılan uygulama çağrıları belirtilen dosyayı açar DeleteContents belge boş olduğundan emin olmak için üye işlevini çağırır CObject::Serialize dosyasını okuma içeriği ve sonra belgeyi temiz olarak işaretler 's.Arşiv mekanizması veya dosya mekanizması dışında bir şey kullanmak isterseniz bu işlevi geçersiz kılar.Örneğin, nerede belgeler ayrı dosyalar yerine bir veritabanı kayıtlarında temsil eden bir uygulama yazabilirsiniz.

Kullanıcı bir SDI uygulamasında Dosya Aç komutu seçerse, framework varolan yeniden başlatmak için bu işlevi kullanan CDocument yeni bir tane oluşturmak yerine nesne.Kullanıcı dosyayı açık bir MDI uygulaması seçerse, framework yeni yapıları CDocument nesne her zaman ve daha sonra yeniden başlatmak için bu işlevi çağırır.Başlatma kodu yerine bu işlevi SDI uygulamasında etkili olması Dosya Aç komutu kurucusunda koymanız gerekir.

Ö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;
}
// Additional example of OnOpenDocument()
BOOL CExampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
   if (!CDocument::OnOpenDocument(lpszPathName))
      return FALSE;

   InitMyDocument(); // call your shared initialization function

   return TRUE;
}

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CDocument sınıfı

Hiyerarşi grafik

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnNewDocument

CDocument::OnSaveDocument

CDocument::ReportSaveLoadException

CObject::Serialize