Aracılığıyla paylaş


mfc ActiveX denetimleri: ActiveX denetiminde resimleri kullanma

Türü resim ve ActiveX denetiminizi uygulamak nasıl anlatılmaktadır.Konular:

  • Özel Resim Özellikleri'ne genel bakış

  • ActiveX denetiminizi özel resim özelliği uygulama

  • Denetim projenize eklemeler

Özel Resim Özellikleri'ne genel bakış

Resim türü Grup türlerinin ortak bazı ActiveX denetimlerini biridir.Resim türü meta dosyaları, bitmapler veya simgeleri işleme ve kullanıcının ActiveX denetiminde görüntülenecek resim belirtmesine izin verir.Özel Resim özellikleri, bir resim nesnesi ve resim özellik denetimi kullanıcı erişimine izin Get/Set işlevleri kullanılarak uygulanır.Hisse senedi resim özellik sayfası özel resim özelliğini denetimi kullanıcıların erişim.

Standart resim türünün yanı sıra, yazı tipi ve renk tipi de mevcuttur.Makale ActiveX denetiminizi standart yazı tipi kullanma hakkında daha fazla bilgi için bkz: mfc ActiveX denetimleri: yazı tiplerini kullanarak.

ActiveX denetiminin sınıf denetim içindeki resim özellik uygulamak için kullanabileceğiniz çeşitli bileşenleri sağlar.Bu bileşenler şunlardır:

  • CPictureHolder sınıfı.

    Bu sınıf, özel resim özelliği tarafından görüntülenen öğe için resim nesnesi ve işlevselliği için kolay erişim sağlar.

  • Özellik türü için destek LPPICTUREDISP, Get/Set işlevleri ile uygulanan.

    Sınıf özel özelliği veya özellikleri kolayca ekleyebilirsiniz görünümünü kullanarak, resmin türünü destekler.Makale Class View ile ActiveX denetimi özellikleri ekleme hakkında daha fazla bilgi için bkz: mfc ActiveX denetimleri: özellikler.

  • Bir denetimin Picture özelliği veya özellikleri işleyen bir özellik sayfası.

    Bu özellik sayfası, bir grup hisse senedi özellik sayfaları ActiveX denetimleri için kullanılabilir bir parçasıdır.Makale ActiveX denetim özellik sayfaları hakkında daha fazla bilgi için bkz: mfc ActiveX denetimlerini: stok özellik sayfaları kullanarak

ActiveX denetiminizi özel resim özelliği uygulama

Bu bölümde anlatılan adımları tamamladıktan sonra Denetim, kullanıcı tarafından seçilen resimleri görüntüleyebilirsiniz.Kullanıcı, geçerli resim gösterir ve kullanıcı seçme farklı resimler için izin veren bir Gözat düğmesi olan bir özellik sayfası kullanılarak görüntülenen resmi değiştirebilir.

Özel bir resim özellik özel özellik resim türünü desteklemesi gerekir, ana fark diğer özellikleri uygulamak için kullanılan benzer bir işlem kullanılarak uygulanır.Madde resmi özelliğinin ActiveX denetimi tarafından çizilmesi için önce tam olarak uygulanabilir özelliği eklemeleri ve değişiklikler yapılmalıdır.

Özel bir resim özellik uygulamak için aşağıdakileri yapmalısınız:

  • Kod denetimi projenize eklemek.

    Bir standart resim özellik sayfası kimliği türü veri üyesi CPictureHolderve özel bir özellik türü LPPICTUREDISP Get/Set ile uygulama eklenmesi gerekir.

  • Denetim sınıfınızın çeşitli işlevleri değiştirmek.

    Bu değişiklikler, ActiveX denetiminizi çizim için sorumlu olan çeşitli işlevler için yapılır.

Denetim projenize eklemeler

Standart resim özellik sayfası özellik sayfası kimliği eklemek için aşağıdaki satırı sonra Ekle BEGIN_PROPPAGEIDS makro denetimi uygulama dosyasındaki (.CPP):

PROPPAGEID(CLSID_CPicturePropPage)

Sayım parametresi artırmanız gerekir, BEGIN_PROPPAGEIDS tarafından bir makro.Aşağıdaki satırı bunu göstermektedir:

BEGIN_PROPPAGEIDS(CMyAxPicCtrl, 2)

Eklemek için CPictureHolder denetim sınıfına veri üyesi denetimi üstbilgi dosyasında denetim sınıf bildirisinin korumalı bölümün altında aşağıdaki satırı ekleyin (.H):

CPictureHolder    m_pic;

Bilgisayarınızın veri üye adı gerekli değildir m_pic; herhangi bir ad yeterli olacak.

Resim türünü destekleyen özel bir özellik daha ekleyin:

Özellik Ekleme Sihirbazı'nı kullanarak özel resim ekleme

  1. Denetimin işleyiş proje yüklenemedi.

  2. Class View'de kendi Denetim Kitaplığı düğümünü genişletin.

  3. Arabirim düğümü (ikinci Kütüphane düğüm düğüm) denetimi için kısayol menüsünü açmak için sağ tıklatın.

  4. Kısayol menüsünden seçin Ekle ve Ekleme özelliği.

  5. İçinde Özellik adı özellik adı yazın.Örneğin amaçlı ControlPicture bu yordamda kullanılan.

  6. İçinde Özellik türü kutusunda seçin IPictureDisp * özellik türü için.

  7. İçin Uygulaması türü,'ı Get/Set yöntemlerini.

  8. Get ve Set işlevleri için benzersiz adlarını yazın veya varsayılan adı kabul edin.(Bu örnekte, varsayılan ad GetControlPicture ve SetControlPicture kullanılır.)

  9. Son düğmesini tıklatın.

Özellik Ekleme Sihirbazı'nı aşağıdaki kodu denetimi üstbilgisi gönderme eşleme açıklamalarda arasında ekler (.h) dosyası:

IPictureDisp* GetControlPicture(void);
void SetControlPicture(IPictureDisp* pVal);

Buna ek olarak, aşağıdaki kod denetim uygulaması gönderme haritasını eklendi (.cpp) dosyası:

DISP_PROPERTY_EX_ID(CMyAxPicCtrl, "ControlPicture", dispidControlPicture, 
   GetControlPicture, SetControlPicture, VT_PICTURE)

Özellik Ekleme Sihirbazı'nı, Denetim uygulama dosyasında aşağıdaki iki saplama işlevleri de ekler:

IPictureDisp* CWizardGenCtrl::GetControlPicture(void)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // TODO: Add your dispatch handler code here

   return NULL;
}

void CWizardGenCtrl::SetControlPicture(IPictureDisp* /*pVal*/)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

[!NOT]

Denetim sınıfı ve işlev adları Yukarıdaki örnekte farklılık gösterebilir.

1exs6wht.collapse_all(tr-tr,VS.110).gifDeğişiklikleri projenize denetimi

Denetim projenize gerekli eklemeler yaptıktan sonra ActiveX denetiminin işleme etkileyen çeşitli işlevleri değiştirmek gerekir.Bu işlevler OnResetState, OnDraw, ve özel bir resim özelliğin Get/Set işlevleri kontrol uygulama dosyasında bulunur.(Bu örnekte, control sınıfı olarak adlandırıldığını unutmayın CSampleCtrl, CPictureHolder veri üyesi olarak adlandırılan m_pic, ve özel resim özellik adı ControlPicture.)

Denetimde OnResetState işlev, aşağıdaki isteğe bağlı satır çağrısının sonrasına ekleyin COleControl::OnResetState:

m_pic.CreateEmpty();

Bu, boş bir resim denetiminin resim ayarlar.

Düzgün resim çizmek için bir çağrı yapmak CPictureHolder::Render denetiminde OnDraw işlevi.Aşağıdaki örnek benzeyecek şekilde işlevinizde değişiklik:

void CMyAxPicCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& /*rcInvalid*/)
{
    if (!pdc)
        return;

   m_pic.Render(pdc, rcBounds, rcBounds);
}

Denetimin özel resim özellik Get işlevini aşağıdaki satırı ekleyin:

return m_pic.GetPictureDispatch();

Denetimin özel resim özellik kümesi işlevi aşağıdaki satırları ekleyin:

m_pic.SetPictureDispatch(pVal);
InvalidateControl();

Tasarım zamanında eklenen bilgiler çalışma zamanında görünür böylece resim özelliği kalıcı yapılması gerekir.Aşağıdaki satırı COleControl-türetilmiş sınıf'ın DoPropExchange işlevi:

PX_Picture(pPX, _T("ControlPicture"), m_pic);

[!NOT]

Sınıf ve işlev adları Yukarıdaki örnekte farklılık gösterebilir.

Değişiklikleri tamamladıktan sonra özel resim özelliğinin yeni işlevselliğine sahiptir ve yeni özellik sınamak için Test kapsayıcı projenizi yeniden oluşturun.Bakın test özelliklerini ve olaylarını sınaması kapsayıcısı ile sınaması kapsayıcısı erişim hakkında bilgi için.

Ayrıca bkz.

Kavramlar

mfc ActiveX denetimleri

mfc ActiveX denetimleri: Yazı kullanma

mfc ActiveX denetimleri: Özellik sayfaları