Bu Not, WinApps, DocTemplates, belgeleri, çerçeveleri ve gösterim için oluşturma ve mülkiyet sorunları açıklar. Sen-ebilmek bulmak çoğu, bu bilgileri ve diğer ilginç yaratma ve mülkiyet konuları, Visual c++ programlama Kılavuzu.
WinApp
Sistemde bir CWinApp nesnesi olduğu.
Bu statik olarak inşa edilmiştir ve WinMain, iç çerçeve'nın uygulaması tarafından başlatıldı. Faydalı bir şey--dan, CWinApp türetilmesi gerekir (istisna: uzantısı dll değil CWinApp örnek olmalı — başlatma DllMain yerine yapılır).
Belge şablonları (a CPtrList) listesini bir CWinApp nesnenin sahibi. Uygulama başına bir veya daha fazla belge şablonu yoktur. DocTemplates kaynak dosyadan (başka bir deyişle, bir dize dizisi) genellikle CWinApp::InitInstance yüklenir.
pTemplate = yeni CDocTemplate (IDR_MYDOCUMENT,...);
AddDocTemplate(pTemplate)
Tüm çerçeve windows uygulamasındaki bir CWinApp nesnenin sahibi. Uygulamanın ana çerçeve penceresi CWinApp::m_pMainWndiçinde saklanmalıdır; genellikle sizin için bunu AppWizard izin verirseniz m_pMainWnd InitInstance uygulanmasında ayarlayın. Tek belge arabirimi (SDI) için ana uygulama çerçeve penceresi yanı sıra, yalnızca belge çerçeve penceresi gören bir CFrameWnd budur. Çok belgeli arabirim (MDI) için bir MDI tüm alt CFrameWnds içeren ana uygulama çerçeve penceresi hizmet veren kare (sınıf CMDIFrameWnd) budur. Her alt pencere sınıfı ( CFrameWndtüretilmiş) CMDIChildWnd ve potansiyel olarak çok sayıda belge çerçeve pencereleri biri olarak hizmet vermektedir.
DocTemplates
CDocTemplate yaratıcısı ve Yöneticisi belgelerin olduğunu. Bunu oluşturan belgelerin sahibi. Aşağıda açıklanan kaynak tabanlı yaklaşım uygulamanızı kullanır, CDocTemplate türetmek gerekmez.
SDI uygulama için sınıf CSingleDocTemplate bir açık belge izler. Bir MDI uygulamanın, sınıf CMultiDocTemplate , bu şablondan oluşturulan tüm açık belgelerin listesi (a CPtrList) tutar. CDocTemplate::AddDocument ve CDocTemplate::RemoveDocument sanal üye ekleme veya şablondan belge kaldırmak için işlevler sağlar. CDocTemplate CDocument arkadaş çok belgeyi oluşturan belge şablonu geri gelin korumalı CDocument::m_pDocTemplate geri işaretçiyi ayarlayabilirsiniz.
Tüm belge şablonlarının sırayla sorgular varsayılan OnFileOpen uygulama CWinApp işler. Zaten açık belgeler için seyir ve ne biçim yeni belgeleri açmak için karar verme uygulaması içerir.
CDocTemplate UI bağlama belgeler ve çerçeveler için yönetir.
Adsız belge sayısı CDocTemplate tutar.
CDocument
Bir CDocument bir CDocTemplate tarafından sahip olunan.
Belgeyi (a CPtrList) ( CViewtüretilmiş) açık görünümler listesi var.
Belgeleri oluşturma / Gösterim yok değil, ancak oluşturulduktan sonra birbirine eklenir. Belge kapalı olduğunda (yani, üzerinden dosya/kapat), tüm bağlı görünümler kapatılır. Bir belgeyi son görünümü kapalı olduğunda (yani, pencere/Close) belge kapalı olacaktır.
CDocument::AddView, RemoveView arabirimi, Görünüm listesini sağlamak için kullanılır. CDocument CView arkadaş yani CView::m_pDocument geri işaretçiyi ayarlayabilirsiniz.
CFrameWnd
Bir CFrameWnd (çerçeve olarak da bilinir) mfc 1.0 olarak aynı rol oynar, ama şimdi CFrameWnd sınıfı birçok durumda yeni bir sınıf ya olmadan kullanılmak üzere tasarlanmıştır. Böylece standart komutların çoğu zaten uygulanan CMDIFrameWnd ve CMDIChildWnd türetilmiş sınıfları da geliştirilir.
CFrameWnd , windows istemci alanında çerçeve hazırlamaktan sorumludur. Normalde orada bir ana pencere çerçevesinin istemci alanı doldurma.
Bir MDI çerçevesi penceresi için istemci alanı hangi sırayla tüm MDI alt çerçeve pencereleri üst MDICLIENT denetimi ile doldurulur. İstemci alanı genellikle bir CViewile bir SDI-çerçeve penceresi veya bir MDI alt çerçeve penceresi, bir dolu-window nesnesini türetilmiş. CSplitterWnddurumunda, istemci alanı görünümün CSplitterWnd window nesnesini ve CViewdolu-türetilmiş penceresindeki nesneler (bölme bölme başına bir adet) CSplitterWnd çocuk windows olarak oluşturulur.
Teknik notlar numarasına göre |nbsp; Teknik notlar kategorisine göre