MFC ActiveX Denetimleri: Başka Bir Özel Özellik Sayfası Ekleme
Bazen, bir ActiveX denetiminin bir özellik sayfasına makul bir şekilde sığabilecek özelliklerden daha fazla özelliği olur. Bu durumda, bu özellikleri görüntülemek için ActiveX denetimine özellik sayfaları ekleyebilirsiniz.
Bu makalede, zaten en az bir özellik sayfası olan bir ActiveX denetimine yeni özellik sayfaları ekleme açıklanır. Hisse senedi özellik sayfaları (yazı tipi, resim veya renk) ekleme hakkında daha fazla bilgi için MFC ActiveX Denetimleri: Stok Özellik Sayfalarını Kullanma makalesine bakın.
Aşağıdaki yordamlar, ActiveX Denetim Sihirbazı tarafından oluşturulan örnek bir ActiveX denetim çerçevesi kullanır. Bu nedenle, sınıf adları ve tanımlayıcıları bu örnekte benzersizdir.
ActiveX denetiminde özellik sayfalarını kullanma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
MFC ActiveX Denetimleri: Stok Özellik Sayfalarını Kullanma
Dekont
Yeni özellik sayfalarının ActiveX denetimi özellik sayfaları için boyut standardına uyması kesinlikle önerilir. Hisse senedi resmi ve renk özelliği sayfaları 250x62 iletişim birimlerini (DLU) ölçer. Standart yazı tipi özellik sayfası 250x110 DLU'dur. ActiveX Denetim Sihirbazı tarafından oluşturulan varsayılan özellik sayfası 250x62 DLU standardını kullanır.
Projenize yeni bir özellik sayfası şablonu eklemek için
Denetim projeniz açıkken, proje çalışma alanında Kaynak Görünümü'nü açın.
Kaynak Görünümü'ne sağ tıklayarak kısayol menüsünü açın ve Kaynak Ekle'ye tıklayın.
İletişim kutusu düğümünü genişletin ve IDD_OLE_PROPPAGE_SMALL'ı seçin.
Kaynağı projenize eklemek için Yeni'ye tıklayın.
Özellikler penceresini yenilemek için yeni özellik sayfası şablonunu seçin (Kaynak Görünümü'nde).
ID özelliği için yeni bir değer girin. Bu örnekte IDD_PROPPAGE_NEWPAGE kullanılır.
Araç çubuğunda Kaydet seçeneğine tıklayın.
Yeni şablonu bir sınıfla ilişkilendirmek için
Sınıf Görünümü'nü açın.
Kısayol menüsünü açmak için Sınıf Görünümü'ne sağ tıklayın.
Kısayol menüsünde Ekle'ye ve ardından Sınıf Ekle'ye tıklayın.
Bu, Sınıf Ekle iletişim kutusunu açar.
MFC Sınıfı şablonuna çift tıklayın.
MFC Sınıf Sihirbazı'ndaki Sınıf Adı kutusuna yeni iletişim kutusu sınıfı için bir ad yazın. (Bu örnekte,
CAddtlPropPage
.)Dosya adlarını değiştirmek istiyorsanız Değiştir'e tıklayın. Uygulama ve üst bilgi dosyalarınızın adlarını yazın veya varsayılan adları kabul edin.
Temel Sınıf kutusunda öğesini seçin
COlePropertyPage
.İletişim Kutusu Kimliği kutusunda IDD_PROPPAGE_NEWPAGE'ı seçin.
Sınıfı oluşturmak için Son'a tıklayın.
Denetimin kullanıcılarının bu yeni özellik sayfasına erişmesine izin vermek için, denetimin özellik sayfası kimlikleri makro bölümünde (denetim uygulama dosyasında bulunur) aşağıdaki değişiklikleri yapın:
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
BEGIN_PROPPAGEIDS makrosunun ikinci parametresini (özellik sayfası sayısı) 1'den 2'ye artırmanız gerektiğini unutmayın.
Ayrıca denetim uygulama dosyasını da ( değiştirmeniz gerekir. CPP) dosyasının üst bilgisini (. H) yeni özellik sayfası sınıfının dosyası.
Sonraki adım, yeni özellik sayfası için bir tür adı ve bir başlık sağlayacak iki yeni dize kaynağı oluşturmayı içerir.
Özellik sayfasına yeni dize kaynakları eklemek için
Denetim projeniz açıkken Kaynak Görünümü'nü açın.
Dize Tablosu klasörüne çift tıklayın ve ardından dize eklemek istediğiniz var olan dize tablosu kaynağına çift tıklayın.
Bu, dize tablosunu bir pencerede açar.
Dize tablosunun sonundaki boş satırı seçin ve dizenin metnini veya başlık yazın: örneğin, "Ek Özellik Sayfası."
Bu, Resim Yazısı ve Kimlik kutularını gösteren bir Dize Özellikleri sayfası açar. Resim Yazısı kutusu, yazdığınız dizeyi içerir.
Kimlik kutusunda, dize için bir kimlik seçin veya yazın. bitirdiğinizde Enter tuşuna basın.
Bu örnekte, yeni özellik sayfasının tür adı için IDS_SAMPLE_ADDPAGE kullanılır.
Kimlik için IDS_SAMPLE_ADDPPG_CAPTION ve başlık için "Ek Özellik Sayfası" kullanarak 3. ve 4. adımları yineleyin.
İçinde. Yeni özellik sayfa sınıfınızın CPP dosyası (bu örnekte),
CAddtlPropPage
aşağıdaki örnekte olduğu gibi IDS_SAMPLE_ADDPAGE AfxOleRegisterPropertyPageClass tarafından geçirilecek şekilde değiştirinCAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry
:BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister) { if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_SAMPLE_ADDPAGE); else return AfxOleUnregisterClass(m_clsid, NULL); }
oluşturucusunun
CAddtlPropPage
IDS_SAMPLE_ADDPPG_CAPTION oluşturucuya geçirileceğiCOlePropertyPage
şekilde aşağıdaki gibi değiştirin:CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Gerekli değişiklikleri yaptıktan sonra projenizi yeniden derleyin ve yeni özellik sayfasını test etmek için Test Kapsayıcısı'nı kullanın. Test kapsayıcısına erişme hakkında bilgi için bkz . Test Kapsayıcısı ile Test Özellikleri ve Olayları.