Aracılığıyla paylaş


Birden Fazla Belge Türü, Görünüm ve Çerçeve Penceresi

Belge, görünümü ve çerçeve penceresi arasındaki standart ilişki Belge/Görünüm Oluşturma bölümünde açıklanmıştır. Birçok uygulama, belge üzerinde tek bir görünüme ve belge başına tek bir çerçeve penceresine sahip tek bir belge türünü (ancak bu türdeki birden çok açık belgeyi) destekler. Ancak bazı uygulamaların bu varsayılan değerlerden birini veya daha fazlasını değiştirmesi gerekebilir.

Ne hakkında daha fazla bilgi edinmek istiyorsunuz?

Birden Çok Belge Türü

MFC Uygulama Sihirbazı sizin için tek bir belge sınıfı oluşturur. Ancak bazı durumlarda birden fazla belge türünü desteklemeniz gerekebilir. Örneğin, uygulamanızın çalışma sayfası ve grafik belgeleri gerekebilir. Her belge türü kendi belge sınıfıyla ve muhtemelen kendi görünüm sınıfıyla da temsil edilir. Kullanıcı Yeni Dosya komutunu seçtiğinde, çerçeve desteklenen belge türlerini listeleyen bir iletişim kutusu görüntüler. Ardından kullanıcının seçtiği türde bir belge oluşturur. Her belge türü kendi belge şablonu nesnesi tarafından yönetilir.

Ek belge sınıfları oluşturmak için bkz . Sınıf Ekleme. Türetmek ve istenen belge bilgilerini sağlamak için Sınıf Türü olarak CDocument'ı seçin. Ardından yeni sınıfın verilerini uygulayın.

Çerçeveye ek belge sınıfınız hakkında bilgi vermek için, uygulama sınıfınızın InitInstance geçersiz kılmasında AddDocTemplate'a ikinci bir çağrı eklemeniz gerekir. Daha fazla bilgi için bkz . Belge Şablonları.

Birden Çok Görünüm

Birçok belge yalnızca tek bir görünüm gerektirir, ancak tek bir belgenin birden fazla görünümünü desteklemek mümkündür. Birden çok görünümü uygulamanıza yardımcı olmak için, belge nesnesi görünümlerinin listesini tutar, görünümleri eklemek ve kaldırmak için üye işlevleri sağlar ve belgenin verilerinin ne zaman değiştiğini birden çok görünüme bildirmek için UpdateAllViews üye işlevini sağlar.

MFC, aynı belgede birden çok görünüm gerektiren üç yaygın kullanıcı arabirimini destekler. Bu modeller şunlardır:

  • Her biri ayrı bir MDI belge çerçevesi penceresindeki aynı sınıfın nesnelerini görüntüleyin.

    Belgede ikinci bir çerçeve penceresi oluşturmayı desteklemek isteyebilirsiniz. Kullanıcı, aynı belgenin görünümüne sahip ikinci bir çerçeve açmak için Yeni Pencere komutunu seçebilir ve ardından belgenin farklı bölümlerini aynı anda görüntülemek için iki çerçeveyi kullanabilir. Çerçeve, ilk çerçeve penceresini ve belgeye eklenmiş görünümü çoğaltarak MDI uygulamaları için Pencere menüsündeki Yeni Pencere komutunu destekler.

  • Aynı belge çerçevesi penceresinde aynı sınıfın nesnelerini görüntüleyin.

    Bölücü pencereler, tek bir belge penceresinin görünüm alanını belgenin birden çok ayrı görünümüne böler. Çerçeve, aynı görünüm sınıfından birden çok görünüm nesnesi oluşturur. Daha fazla bilgi için bkz . Splitter Windows.

  • Tek bir çerçeve penceresinde farklı sınıfların nesnelerini görüntüleyin.

    Bu modelde, bölücü penceresinin bir varyasyonu olan birden çok görünüm tek bir çerçeve penceresini paylaşır. Görünümler farklı sınıflardan oluşturulur ve her görünüm aynı belgeyi görüntülemek için farklı bir yol sağlar. Örneğin, bir görünümde bir sözcük işleme belgesi normal modda, diğer görünümde ise ana hat modunda gösterebilirsiniz. Bölücü denetimi, kullanıcının görünümlerin göreli boyutlarını ayarlamasına olanak tanır.

A, b ve c bölümlerine ayrılmış aşağıdaki şekilde, üç kullanıcı arabirimi modeli yukarıda gösterilen sırayla gösterilmiştir.

Diagram showing three multiple view user interfaces.
Birden Çok Görünümlü Kullanıcı Arabirimleri

Çerçeve, Splitter Windows'da açıklandığı gibi Yeni Pencere komutunu uygulayarak ve CSplitterWnd sınıfını sağlayarak bu modelleri sağlar. Başlangıç noktanız olarak bunları kullanarak diğer modelleri uygulayabilirsiniz. Görünümlerin, çerçeve pencerelerinin ve bölücülerin farklı yapılandırmalarını gösteren örnek programlar için bkz . MFC Örnekleri.

hakkında UpdateAllViewsdaha fazla bilgi için MFC Başvurusu'ndaki CView sınıfına ve Karalama örneğine bakın.

Birden Çok Çerçeve Penceresi

Aynı belgede ikinci bir çerçeve penceresi oluşturmak için MDI uygulamaları için Pencere menüsündeki Yeni Pencere komutunu kullanabilirsiniz. Daha fazla bilgi için, Çoklu Görünüm Kullanıcı Arabirimleri şeklindeki ilk modele bakın.

Ayırıcı Pencereler

Bölücü penceresinde pencere iki veya daha fazla kaydırılabilir bölmeye bölünebilir veya bölünebilir. Kaydırma çubuklarının yanındaki pencere çerçevesindeki bölücü denetimi (veya "bölme kutusu"), kullanıcının bölmelerin göreli boyutlarını ayarlamasına olanak tanır. Her bölme aynı belgedeki bir görünümdür. "Dinamik" bölücülerde görünümler, Çok Görünümlü Kullanıcı Arabirimleri şeklindeki b bölümünde gösterildiği gibi aynı sınıftadır. "Statik" bölücülerde görünümler farklı sınıflarda olabilir. Her iki türden bölücü pencereleri CSplitterWnd sınıfı tarafından desteklenir.

Aynı sınıfın görünümlerine sahip dinamik bölücü pencereler, kullanıcının bir pencereyi istediğiniz zaman birden çok bölmeye bölmesine ve ardından belgenin farklı bölümlerini görmek için farklı bölmeleri kaydırmasına olanak tanır. Kullanıcı, ek görünümleri kaldırmak için pencerenin işaretini de kaldırabilir. Karalama örneğine eklenen ayırıcı pencereler örnek olarak verilmiş. Bu konuda dinamik bölücü pencereleri oluşturma tekniği açıklanmaktadır. Çok Görünümlü Kullanıcı Arabirimleri şeklindeki b bölümünde dinamik bir bölücü penceresi gösterilir.

Farklı sınıfların görünümlerine sahip statik bölücü pencereler, her biri farklı bir amaca sahip birden çok bölmeye bölünmüş pencereyle başlar. Örneğin, Visual C++ bit eşlem düzenleyicisinde görüntü penceresinde yan yana iki bölme gösterilir. Sol bölmede bit eşlemin canlı boyutlu bir görüntüsü görüntülenir. Sağ bölmede aynı bit eşlemin yakınlaştırılmış veya büyütülmüş bir görüntüsü görüntülenir. Bölmeler, kullanıcının bölmelerin göreli boyutlarını değiştirmek için sürükleyebileceği bir "bölücü çubuğu" ile ayrılır. Çok Görünümlü Kullanıcı Arabirimleri şeklindeki c bölümünde statik bir bölücü penceresi gösterilir.

Daha fazla bilgi için MFC Başvurusu ve MFC Örnekleri'ndeki CSplitterWnd sınıfına bakın.

Ayrıca bkz.

Belge/Görünüm Mimarisi