Kalıcı Olmayan Özellik Sayfası Oluşturma
Normalde, oluşturduğunuz özellik sayfaları kalıcı olur. Kalıcı özellik sayfası kullanırken, kullanıcının uygulamanın başka bir bölümünü kullanmadan önce özellik sayfasını kapatması gerekir. Bu makalede, kullanıcının uygulamanın diğer bölümlerini kullanırken özellik sayfasını açık tutmasına olanak tanıyan bir modsuz özellik sayfası oluşturmak için kullanabileceğiniz yöntemler açıklanmaktadır.
Bir özellik sayfasını kalıcı iletişim kutusu yerine modsuz bir iletişim kutusu olarak görüntülemek için, DoModal yerine CPropertySheet::Create öğesini çağırın. Ayrıca, modsuz özellik sayfasını desteklemek için bazı ek görevler de uygulamanız gerekir.
Ek görevlerden biri, özellik sayfası açıkken özellik sayfası ile değiştirdiğinden dış nesne arasında veri alışverişi yapmaktır. Bu genellikle standart modsuz iletişim kutularıyla aynı görevdir. Bu görevin bir bölümü, modsuz özellik sayfası ile özellik ayarlarının uygulandığı dış nesne arasında bir iletişim kanalı uygulamaktır. Modeless özellik sayfanız için CPropertySheet'ten bir sınıf türetdiğinizde bu uygulama çok daha kolaydır. Bu makalede, bunu yaptığınız varsayılır.
Modsuz özellik sayfası ile dış nesne (örneğin, görünümdeki geçerli seçim) arasında iletişim kurmak için bir yöntem, özellik sayfasından dış nesneye bir işaretçi tanımlamaktır. Odak bir dış nesneden diğerine her değiştiğinde işaretçiyi CPropertySheet
değiştirmek için türetilmiş sınıfta bir işlev (gibi SetMyExternalObject
bir şey olarak adlandırılır) tanımlayın. İşlevin SetMyExternalObject
her özellik sayfasının ayarlarını yeni seçilen dış nesneyi yansıtacak şekilde sıfırlaması gerekir. Bunu başarmak için işlevin SetMyExternalObject
sınıfına ait CPropertyPage nesnelerine erişebilmesi CPropertySheet
gerekir.
Özellik sayfası içindeki özellik sayfalarına erişim sağlamanın en kullanışlı yolu, nesneleri türetilmiş nesneye CPropertySheet
eklemektirCPropertyPage
. CPropertyPage
Türetilmiş nesneye CPropertySheet
nesne eklemek, kalıcı iletişim kutuları için tipik tasarımdan farklıdır; burada özellik sayfasının sahibi nesneleri oluşturur CPropertyPage
ve bunları CPropertySheet::AddPage aracılığıyla özellik sayfasına geçirir.
Modeless özellik sayfasının ayarlarının bir dış nesneye ne zaman uygulanacağını belirlemek için birçok kullanıcı arabirimi alternatifi vardır. Alternatiflerden biri, kullanıcı herhangi bir değer değiştirildiğinde geçerli özellik sayfasının ayarlarını uygulamaktır. Bir diğer alternatif de, kullanıcının dış nesneye kaydetmeden önce özellik sayfalarında değişiklikleri birikmesini sağlayan Bir Uygula düğmesi sağlamaktır. Uygula düğmesini işleme yolları hakkında bilgi için Uygula Düğmesini İşleme makalesine bakın.
Ayrıca bkz.
Özellik Sayfaları
Veri Değişimi
MFC'de İletişim Kutularıyla Çalışma