CDocument::OnOpenDocument

sanal bool OnOpenDocument ( lpctstr lpszPathName );

Dönüş değeri

Sıfır olmayan belge başarıyla yüklendiyse; Aksi halde 0.

Parametreleri

lpszPathName

Puan yolu açılacak belgenin.

Açıklamalar

Dosya Aç komutu bir parçası olarak çerçeve tarafından çağrılan. Varsayılan uygulama bu işlevi belirtilen dosyayı açar, belgede boş, dosyanın içeriğini okumak için CObject::Serialize çağırır ve sonra belgeyi temiz olarak işaretler sağlamak için DeleteContents üye işlevini çağırır. Arşiv mekanizması veya dosya mekanizması dışında başka bir şey kullanmak isterseniz bu işlevi geçersiz. Örneğin, nerede belgeler ayrı dosyalar yerine, veritabanı kayıtları temsil eden bir uygulama yazabilirsiniz.

Kullanıcı bir SDI uygulamasında Dosya Aç komutu seçerse, çerçeve yenisini oluşturmak yerine, varolan CDocument nesneyi yeniden başlatmak için bu işlevini kullanır. Kullanıcı dosya Aç MDI uygulamayı seçerse, çerçeve her zaman yeni bir CDocument nesnesi oluşturur ve sonra başlatmak üzere bu işlevini çağırır. Bu işlevi yerine SDI uygulamalarında etkili olabilmek Dosya Aç komutu Oluşturucu başlatma kodu koymanız gerekir.

Örnek

/ / Alternatif yöntemler aşağıdaki örneklerde gösterilmektedir
/ / bir belge nesnesi başlatılıyor.

/ / Yöntem 1: yapmak için basit bir yerde bir MDI uygulamada / / başlatma belge constructor.nbsp içinde; Çerçeve / / dosyayı yeni veya dosya açık için her zaman yeni bir belge nesnesi oluşturur.

CMyDoc::CMyDoc()
{
   / / MDI belge burada başlatma işlemi yapın.
   // ...
}

/ / Yöntem 2: tüm başlatma bir SDI veya MDI uygulaması yapmak / / On&NewDocument emin iseniz, geçersiz kılma
/ / başlatma etkin dosyayı kaydetmek kaydedilir
/ / ve tam olarak geri yüklenen dosya Aç, üzerine üzerinden seri hale getirme.

bool CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      return false;

/ / Burada yeni bir belge başlatma işlemi yapın.

true döndürür;
}

/ / Yöntem 3: belge başlatma değilse
/ / etkili kaydedilir ve geri tarafından seri hale getirme (sırasında dosyayı kaydedin
/ / ve Dosya Aç), sonra başlatma tek uygulanması
/ / function (Bu örnekte InitMyDocument adında).  Çağrı
/ / her ikisini de geçersiz kılmaları başlatılması işlevinden paylaşılan
/ / OnNewDocument ve OnOpenDocument.
 
bool CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      return false;

InitMyDocument(); / / Paylaşılan başlatma işlevi arama

/ / Yeni belge nesnesi ek başlatma gerektiriyorsa
   / / Belge açık dosya serisi zaman gerekli değildir
   / / Bu ek başlatma gerçekleştirmek.

true döndürür;
}

CDocument genel bakış |nbsp; Sınıf üyeleri | Hiyerarşi çizelgesi

Ayrıca bkz:nbsp;CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::On&NewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject::Serialize

Index