Aracılığıyla paylaş


MFC Nesneleri Arasındaki İlişki

Belge/görünüm oluşturma işleminin perspektife alınmasına yardımcı olmak için çalışan bir program düşünün: belge, görünümü içeren çerçeve penceresi ve belgeyle ilişkilendirilmiş görünüm.

  • Belge, bu belgenin görünümlerinin listesini ve belgeyi oluşturan belge şablonunun işaretçisini tutar.

  • Görünüm, belgenin işaretçisini tutar ve üst çerçeve penceresinin alt öğesidir.

  • Belge çerçevesi penceresi, geçerli etkin görünümüne yönelik bir işaretçi tutar.

  • Belge şablonu, açık belgelerinin listesini tutar.

  • Uygulama, belge şablonlarının listesini tutar.

  • Windows, onlara ileti gönderebilmesi için tüm açık pencereleri izler.

Bu ilişkiler belge/görünüm oluşturma sırasında kurulur. Aşağıdaki tabloda, çalışan bir programdaki nesnelerin diğer nesnelere nasıl erişebileceği gösterilmektedir. Herhangi bir nesne, afxGetApp genel işlevini çağırarak uygulama nesnesine bir işaretçi alabilir.

Uygulamanızdaki Diğer Nesnelere Erişim Kazanma

Kimden nesnesi Diğer nesnelere erişme
Belge Belgenin görünüm listesine erişmek için GetFirstViewPosition ve GetNextView kullanın.

Belge şablonunu almak için GetDocTemplate'ı çağırın.
Göster Belgeyi almak için GetDocument'ı arayın.

Çerçeve penceresini almak için GetParentFrame'i çağırın.
Belge çerçevesi penceresi Geçerli görünümü almak için GetActiveView'u çağırın.

Belgeyi geçerli görünüme eklemek için GetActiveDocument'ı çağırın.
MDI çerçeve penceresi Şu anda etkin olan CMDIChildWnd'ı almak için MDIGetActive'ı çağırın.

Genellikle, bir çerçeve penceresinin tek bir görünümü vardır, ancak bazen bölücü pencerelerde olduğu gibi aynı çerçeve penceresi birden çok görünüm içerir. Çerçeve penceresi, etkin olan görünümün işaretçisini tutar; başka bir görünüm etkinleştirildiğinde işaretçi güncelleştirilir.

Dekont

Ana çerçeve penceresinin işaretçisi, uygulama nesnesinin m_pMainWnd üye değişkeninde depolanır. Sizin için OnFileNew m_pMainWnd kümelerin CWinApp üye işlevini geçersiz kılmanızda InitInstance çağrısı. çağrısı OnFileNewyapmazsanız değişkenin değerini InitInstance kendi içinde ayarlamanız gerekir. (Komut satırında /Embedding varsa SDI COM bileşeni (sunucu) uygulamaları değişkeni ayarlayamayabilir.) m_pMainWnd artık yerine CWinAppsınıfın CWinThread bir üyesi olduğunu unutmayın.

Ayrıca bkz.

Belge Şablonları ve Belge/Görünüm Oluşturma İşlemi
Belge Şablonu Oluşturma
Belge/Görünüm Oluşturma
Yeni Belgeler, Pencereler ve Görünümler Oluşturma