Aracılığıyla paylaş


mfc ActiveX denetimi: Özel özellikler ekleme

Özel özellikler özel özellikleri tarafından henüz uygulanmadı, hisse senedi özelliklerinden farklı COleControl sınıfı.Özel bir özelliği, belirli bir durum veya denetimi kullanarak bir programcı için ActiveX denetiminin görünümünü göstermek için kullanılır.

Bu makalede nasıl Özellik Ekleme Sihirbazı'nı kullanarak ActiveX denetimini özel özellik ekleneceğini açıklar ve elde edilen kod değişiklikleri açıklar.Konular:

  • Özel bir özellik eklemek için Özellik Ekleme Sihirbazı'nı kullanma

  • Property Wizard değişiklikler için özel özellikler ekleme

Özel özellikler uygulama dört mağazalarında gelir: üye değişkeni, üye değişken bildirimi, Get/Set yöntemleri ve Parameterized.

  • Üye değişken uygulaması

    Bu uygulama, Denetim sınıfı bir üye değişkeni olarak özelliğin durumu temsil eder.Özelliğinin değeri değiştiğinde bilmek önemli değil, üye değişken uygulamasını kullanın.Üç tür bu uygulaması, en az özelliği için destek kodu oluşturur.Üye değişken uygulaması için gönderme eşleme girdisi makro DISP_PROPERTY.

  • Üye değişkeni bildirimi uygulaması ile

    Bu uygulama, üye değişkeni ve Özellik Ekleme Sihirbazı tarafından oluşturulan bir bildirim işlevi oluşur.Bildirim işlevi, çerçevesi tarafından sonra özelliğinin değeri değiştiğinde otomatik olarak adlandırılır.Özellik değeri değiştikten sonra bildirilmesi gerektiğinde üye değişkeni bildirimi uygulaması ile kullanın.Bir işlev çağrısı gerektirdiğinden bu uygulama daha fazla zaman gerektirir.Bu uygulama için gönderme eşleme girdisi makro DISP_PROPERTY_NOTIFY.

  • GET/Set yöntemlerini uygulama

    Bu uygulama denetim sınıfı üye işlevleri çifti oluşur.Denetimin kullanıcı özelliği değiştirilmesini istediğinde Get/Set yöntemlerini uygulama özelliğinin geçerli değeri denetimin kullanıcı istediğinde ve üye işlevleri kümesi otomatik olarak Get üye çağırır.Bu uygulama, çalışma zamanı sırasında bir özelliğinin değerini hesaplamak için gerçek özellik değiştirmeden önce denetimin kullanıcı tarafından geçirilen bir değeri doğrulamak veya uygulamak veya yazma-salt okunur bir özellik türü kullanın.Bu uygulama için gönderme eşleme girdisi makro DISP_PROPERTY_EX.Aşağıdaki bölümde özel bir özellik eklemek için Özellik Ekleme Sihirbazı'nı kullanarak, bu uygulama göstermek için CircleOffset özel özelliğini kullanır.

  • Parametreli uygulaması

    Parametreli uygulaması Özellik Ekleme Sihirbazı tarafından desteklenir.(Özellik dizisi de denir) parametreli bir özelliği, bir değerler kümesini tek bir özellik denetimi erişmek için kullanılabilir.Bu uygulama için gönderme eşleme girdisi makro DISP_PROPERTY_PARAM.Bu tür uygulama konusunda daha fazla bilgi için bkz: uygulayan parametreli bir özellik makalede ActiveX denetimleri: Gelişmiş Konular.

Kullanarak özel bir özellik eklemek için özellik Sihirbazı Ekle

Get/Set yöntemlerini uygulaması kullanan CircleOffset uyarlanmış bir özellik ekleyerek aşağıdaki yordamda gösterilmektedir.CircleOffset özel özellik denetimin sınırlayıcı dikdörtgeni merkezden daire kaydırmak denetimin kullanıcı verir.Get/Set yöntemleri dışında bir uygulama ile özel özellikler ekleme yordamı çok benzer.

Bu yordamı, istediğiniz diğer özel özellikler eklemek için de kullanılabilir.CircleOffset özellik adı ve parametreler için özel özellik adınızı değiştirin.

Özellik Ekleme Sihirbazı'nı kullanarak CircleOffset özel özellik eklemek için

  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. Tıklatın kısayol menüsünden EkleEkleme özelliği.

    Bu açılır Özellik Ekleme Sihirbazı'nı.

  5. İçinde Özellik adı yazın CircleOffset.

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

  7. İçinde Özellik türü kutusunda seçin kısa.

  8. Get ve Set işlevleri için benzersiz adlarını yazın veya varsayılan adı kabul edin.

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

Özellik sihirbaz değişiklikleri için özel özellikler ekleme

Özellik Ekleme Sihirbazı'nı CircleOffset özel özellik eklediğinizde üstbilgi değişiklikleri yapar (.h) ve uygulama (.Control sınıfının cpp) dosyaları.

Aşağıdaki satırları eklenir.H dosya adında iki işlev bildirmek için GetCircleOffset ve SetCircleOffset:

SHORT GetCircleOffset(void);
void SetCircleOffset(SHORT newVal);

Aşağıdaki satırı, denetimin eklenir.IDL dosyası:

[id(2), helpstring("property CircleOffset")] SHORT CircleOffset;
[id(3), helpstring("property MyProperty")] SHORT MyProperty;

Bu satır, yöntemin konumundan Özellik Ekleme Sihirbazı'nı, yöntemler ve Özellikler listesinde alınan belirli bir kimlik numarası CircleOffset özelliğine atar.

Buna ek olarak, aşağıdaki satırı dağıtma eşlemi eklenir (içinde.Control sınıfının cpp dosyası) CircleOffset özelliği denetimin iki işleyici işlevi eşlemek için:

DISP_PROPERTY_EX_ID(CMyAxUICtrl, "CircleOffset", dispidCircleOffset, GetCircleOffset, SetCircleOffset, VT_I2)

Son olarak, uygulamaları GetCircleOffset ve SetCircleOffset işlevleri, denetimin sonuna eklenir.cpp dosyası.Çoğu durumda, özelliğin değeri döndürmek için Get işlevini değiştirir.Set işlevi genellikle önce veya sonra özellik değişikliklerini yürütülmelidir kodunu içerir.

void CMyAxUICtrl::SetCircleOffset(SHORT /*newVal*/)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

Özellik Ekleme Sihirbazı'nı otomatik olarak bir çağrı için eklediği Not SetModifiedFlag, kümesi işlev gövdesi için.Bu işlev çağırma denetim değiştirilmiş olarak işaretlenir.Bir denetim değiştirilirse yeni durumuna kapsayıcı kaydedildiğinde kaydedilecektir.Denetimin kalıcı duruma bir parçası olarak kaydedilen bir özellik değeri değiştiğinde bu işlevi çağrılmalıdır.

Ayrıca bkz.

Başvuru

COleControl sınıfı

Kavramlar

mfc ActiveX denetimleri

mfc ActiveX denetimleri: Özellikler

mfc ActiveX denetimleri: yöntemleri