COleControl

COleControl sınıfı ole denetimlerini geliştirmek için güçlü bir temel sınıftır. CWndtüretilmiş, bu sınıf, bir Windows window nesnesini tüm işlevlerini artı ek işlevsellik olay Tetikleme ve yöntemleri ve özellikleri desteklemek için yeteneği gibi ole için özel devralır.

Ole kontrolleri ole kapsayıcı uygulamalarına eklenebilir ve kapsayıcı ile iki yönlü bir sistem olay firing ve Dahası yöntemleri ve özellikleri kapsayıcı kullanarak iletişim kurar. Standart ole kapsayıcı yalnızca ole denetimi temel işlevselliğini desteklediğini unutmayın. Genişletilmiş özellikleri ole denetimi desteği veremiyoruz. Kapsayıcı denetimi içinde yer alarak belirli eylemleri sonucu olaylar gönderildiğinde olay firing oluşur. Buna karşılık, kapsayıcı bir c++ sınıf üyelerinin veri ve yöntemleri ve özellikleri üye işlevlerine benzer maruz bir dizi kullanarak denetimle iletişim kurar. Bu yaklaşım geliştirici denetimin görünümünü denetlemek ve belirli eylemleri oluştuğunda konteyner bildirmek için izin verir.

Penceresiz denetimleri

Ole Denetimleri kullanılan yerinde etkin pencere olmadan olabilir. Penceresiz denetimlerinin, önemli avantajlar vardır.:

Denetimler, bir pencere gerekmez. Hizmetleri sunan bir pencere tek paylaşılan pencerenin (genellikle kapsayıcı) ve biraz dağıtırken kodu ile kolayca sağlanabilir. Bir pencere nesnesi üzerinde çoğunlukla gereksiz bir komplikasyonu olan.

Penceresiz etkinleştirme kullanıldığında, (Bu bir pencere var) konteyner aksi denetimin kendi pencere tarafından sağlanan hizmetler sağlamaktan sorumludur. Örneğin, Denetim klavye odağını sorgulamak, fare yakalama sorgu veya bir aygıt içeriğini almak gerekiyorsa, bu işlemler konteyner tarafından yönetilir. COleControl işlemi penceresiz üye işlevleri çağırmak konteyner bu işlemleri.

Penceresiz etkinleştirme etkin olduğunda, denetimin IOleInPlaceObjectWindowless arabirimi iletileri konteyner delege giriş (uzantısı IOleInPlaceObject penceresiz desteği). Sonra fare ayarlama uygun şekilde koordine COleControl' nın uygulanması bu arabirim üzerinden, denetim iletisi göster, bu ileti gönderme. İleti harita ilgili girişleri ekleyerek gibi sıradan pencere iletilerinin, bu iletiler işlem yapabilir.

Penceresiz bir kontrol, zaman COleControl üye işlevler ilgili CWnd üye işlevler veya ilgili Windows API işlevlerini yerine kullanmalısınız.

Ole denetimi nesneleri de bir pencere yalnızca bunların etkinleşir, ancak etkin-etkin geçiş için gerekli çalışma miktarı artar ve geçiş hızını iner oluşturabilirsiniz. Orada durumlarda bu bir sorundur: Örneğin, metin kutusu bir tablo düşünün. Ne zaman sütunu ile işaretleme ve yukarı her denetimi etkinleştirilir ve sonra devre dışı yerinde olmalıdır. Etkin/etkin geçiş hızı doğrudan kaydırma hızını etkileyecek.

Bir ole denetimi çerçeve geliştirme hakkında daha fazla bilgi için bkz: makaleleri ActiveX denetimleri ve Visual c++ programlama Kılavuzu oluşturma ActiveX ControlWizard bir Program . Temel çerçeve ötesinde işlevsellik ekleme hakkında daha fazla bilgi için bkz: ActiveX denetimi oluşturma (Daire Öğreticisi) Visual c++ Tutorials. ole Denetimleri, penceresiz ve titreşimsiz denetimleri de dahil olmak üzere en iyi duruma getirme hakkında bilgi için bkz: ActiveX denetimleri: optimizasyon Visual c++ Programcı Kılavuzu.

# include lt;afxctl.h>

Sınıf üyeleri |nbsp; Temel sınıf | Hiyerarşi çizelgesi

Ör&neklerinbsp; mfc örnek CIRC3 | mfc örnek DRAWPIC | mfc örnek testhelp

Ayrıca bkz: COlePropertyPage, CFontHolder, CPictureHolder

Index