Aracılığıyla paylaş


MFC ActiveX Denetimleri

Uyarı

Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

ActiveX denetimi, çok çeşitli OLE işlevlerini destekleyen ve birçok yazılım gereksinimlerine uyacak şekilde özelleştirilebilen Bileşen Nesne Modeli'ni (COM) temel alan yeniden kullanılabilir bir yazılım bileşenidir.

Önemli

ActiveX, yeni geliştirme için kullanılmaması gereken eski bir teknolojidir. Daha fazla bilgi için bkz. ActiveX Denetimleri.

ActiveX denetimleri hem sıradan ActiveX denetim kapsayıcılarında hem de İnternet'te World Wide Web sayfalarında kullanılmak üzere tasarlanmıştır. Burada açıklanan MFC ile veya Etkin Şablon Kitaplığı (ATL) ile ActiveX denetimleri oluşturabilirsiniz.

ActiveX denetimi kendisini kendi penceresinde çizebilir, olaylara yanıt verebilir (fare tıklamaları gibi) ve Otomasyon nesnelerindekine benzer özellikler ve yöntemler içeren bir arabirim aracılığıyla yönetilebilir.

Bu denetimler veritabanı erişimi, veri izleme veya grafik oluşturma gibi birçok kullanım için geliştirilebilir. ActiveX denetimleri taşınabilirliklerinin yanı sıra, mevcut OLE kapsayıcılarıyla uyumluluk ve menülerini OLE kapsayıcı menüleriyle tümleştirme gibi ActiveX denetimleri için daha önce kullanılamayan özellikleri destekler. Buna ek olarak, ActiveX denetimi otomasyonunu tam olarak destekler ve bu da denetimin okuma\yazma özelliklerini ve denetim kullanıcısı tarafından çağrılabilen bir dizi yöntemi kullanıma sunmasına olanak tanır.

Penceresiz ActiveX denetimleri ve yalnızca etkin hale geldiklerinde pencere oluşturan denetimler oluşturabilirsiniz. Penceresiz denetimler, uygulamanızın görüntülenmesini hızlandırarak saydam ve nonrectangular denetimleri olmasını mümkün hale getirir. ActiveX denetim özelliklerini zaman uyumsuz olarak da yükleyebilirsiniz.

ActiveX denetimi, herhangi bir OLE kapsayıcısında kullanılabilen bir işlem içi sunucu (genellikle küçük bir nesne) olarak uygulanır. Bir ActiveX denetiminin tam işlevselliğinin yalnızca ActiveX denetimlerini dikkate almak üzere tasarlanmış bir OLE kapsayıcısı içinde kullanıldığında kullanılabildiğini unutmayın. ActiveX denetimlerini destekleyen kapsayıcıların listesi için bkz. ActiveX Denetimlerini Diğer Uygulamalara Taşıma . Bundan sonra "denetim kapsayıcısı" olarak adlandırılan bu kapsayıcı türü, denetimin özelliklerini ve yöntemlerini kullanarak bir ActiveX denetimi çalıştırabilir ve ActiveX denetiminden olaylar biçiminde bildirimler alır. Aşağıdaki şekilde bu etkileşim gösterilmektedir.

ActiveX denetim kapsayıcısının ve denetiminin etkileşimi.
ActiveX Denetim Kapsayıcısı ile Pencereli ActiveX Denetimi Arasındaki Etkileşim

ActiveX denetimlerinizi iyileştirme hakkında en son bilgiler için bkz. MFC ActiveX Denetimleri: İyileştirme.

MFC ActiveX denetimi oluşturmak için bkz. ActiveX denetim projesi oluşturma.

Daha fazla bilgi için bakınız:

ActiveX Denetiminin Temel Bileşenleri

ActiveX denetimi, bir denetim kapsayıcısıyla ve kullanıcıyla verimli bir şekilde etkileşime geçmek için çeşitli programlı öğeler kullanır. Bunlar COleControl sınıfı, olay tetikleme işlevleri kümesi ve dağıtım haritasıdır.

Geliştirdiğiniz her ActiveX denetim nesnesi, MFC temel sınıfından COleControlgüçlü bir özellik kümesini devralır. Bu özellikler yerinde etkinleştirmeyi ve Otomasyon mantığını içerir. COleControl bir MFC pencere nesnesiyle aynı işleve sahip denetim nesnesine ek olarak olayları tetikleyebilme olanağı sağlayabilir. COleControl bir pencerenin sağladığı bazı işlevlerle (fare yakalama, klavye odağı, kaydırma) ilgili yardım için kapsayıcısına dayanan penceresiz denetimler de sağlayabilir, ancak çok daha hızlı görüntü sunar.

Denetim sınıfı öğesinden COleControltüretildiğinden, belirli koşullar karşılandığında denetim kapsayıcısına olaylar olarak adlandırılan iletileri gönderme veya "tetikle" özelliğini devralır. Bu olaylar, denetimde önemli bir şey olduğunda denetim kapsayıcısını bilgilendirmek için kullanılır. Olaya parametreler ekleyerek denetim kapsayıcısına bir olay hakkında ek bilgi gönderebilirsiniz. ActiveX denetim olayları hakkında daha fazla bilgi için MFC ActiveX Denetimleri: Olaylar makalesine bakın.

Son öğe, bir dizi işlevi (yöntemler olarak adlandırılır) ve öznitelikleri (özellik olarak adlandırılır) denetim kullanıcısına göstermek için kullanılan bir dağıtım eşlemesidir. Özellikler, denetim kapsayıcısının veya denetim kullanıcısının denetimi çeşitli şekillerde işlemesine olanak tanır. Kullanıcı denetimin görünümünü değiştirebilir, denetimin belirli değerlerini değiştirebilir veya denetimin koruduğu belirli bir veri parçasına erişme gibi denetim isteklerinde bulunabilir. Bu arabirim denetim geliştiricisi tarafından belirlenir ve Sınıf Görünümü kullanılarak tanımlanır. ActiveX denetim yöntemleri ve özellikleri hakkında daha fazla bilgi için MFC ActiveX Denetimleri: Yöntemler ve Özellikler makalelerine bakın.

Kontroller ile Windows ve ActiveX Denetim Kapsayıcıları Arasındaki Etkileşim

Denetim kapsayıcısı içinde bir denetim kullanıldığında, iletişim kurmak için iki mekanizma kullanır: özellikleri ve yöntemleri kullanıma sunar ve olayları tetikler. Aşağıdaki şekilde bu iki mekanizmanın nasıl uygulandığı gösterilmektedir.

ActiveX denetimi kapsayıcısıyla iletişim kurar.
ActiveX Denetim Kapsayıcısı ile ActiveX Denetimi Arasındaki İletişim

Önceki şekil, otomasyon ve olaylar dışında, diğer OLE arabirimlerinin denetimler tarafından nasıl işlendiğini de göstermektedir.

Bir denetimin kapsayıcıyla tüm iletişimi COleControl tarafından gerçekleştirilir. Kapsayıcının bazı isteklerini işlemek için COleControl, kontrol sınıfında uygulanan üye işlevlerini çağıracaktır. Tüm yöntemler ve bazı özellikler bu şekilde işlenir. Denetiminizin sınıfı, COleControl öğesinin üye işlevlerini çağırarak kapsayıcıyla iletişim de başlatabilir. Olaylar bu şekilde tetiklenir.

ActiveX Denetiminin Etkin ve Etkin Olmayan Durumları

Denetimin iki temel durumu vardır: etkin ve etkin değil. Geleneksel olarak, bu durumlar denetimin bir penceresi olup olmadığıyla ayırt edilirdi. Etkin bir denetimin penceresi vardı; etkin olmayan bir denetimin penceresi yoktu. Penceresiz etkinleştirmenin kullanıma sunulmasıyla birlikte, bu ayrım artık evrensel değildir, ancak yine de birçok denetim için geçerlidir.

Penceresiz denetim etkin hale geldiğinde, kapsayıcısından fare yakalama, klavye odağı, kaydırma ve diğer pencere hizmetlerini çağırır. Ayrıca etkin olmayan denetimlere fare etkileşimi sağlayabilir ve pencere oluşturmak için etkinleştirilene kadar bekleyen denetimler oluşturabilirsiniz.

Penceresi olan bir denetim etkin hale geldiğinde, denetim kapsayıcısı, kullanıcı ve Windows ile tam olarak etkileşime geçer. Aşağıdaki şekilde ActiveX denetimi, denetim kapsayıcısı ve işletim sistemi arasındaki iletişim yolları gösterilmektedir.

Etkin pencereli ActiveX denetiminde msg işleme.
Pencere İçeren ActiveX Denetiminde Windows Mesaj İşleme (Etkin Olduğunda)

Seri -leştirme

Bazen kalıcılık olarak da adlandırılan verileri seri hale getirebilme özelliği, denetimin özelliklerinin değerini kalıcı depolamaya yazmasına olanak tanır. Ardından, depolama alanından nesnenin durumu okunarak denetimler yeniden oluşturulabilir.

Bir denetimin depolama ortamına erişim elde etmekle sorumlu olmadığını unutmayın. Bunun yerine denetimin kapsayıcısı, denetimin uygun zamanlarda kullanılacak bir depolama ortamı sağlamakla sorumludur. Serileştirme hakkında daha fazla bilgi için MFC ActiveX Denetimleri: Serileştirme makalesine bakın. Serileştirmeyi iyileştirme hakkında bilgi için bkz. ActiveX Denetimlerinde Kalıcılığı ve Başlatmayı İyileştirme : İyileştirme.

ActiveX Denetim Sınıflarını ve Araçlarını Yükleme

Visual Studio'yu yüklediğinizde, MFC ActiveX denetim sınıfları ve perakende ve hata ayıklama ActiveX denetimi çalışma zamanı DLL'leri, Kurulum'da ActiveX denetimleri seçiliyse (varsayılan olarak seçilirler) otomatik olarak yüklenir.

Varsayılan olarak, ActiveX denetim sınıfları ve araçları \Program Files\Microsoft Visual Studio .NET altındaki aşağıdaki alt dizinlere yüklenir:

  • \Common7\Tools

    Test Kapsayıcısı dosyalarını (TstCon32.exeve Yardım dosyalarını) içerir.

  • \Vc7\atlmfc\include

    MFC ile ActiveX denetimleri geliştirmek için gereken ekleme dosyalarını içerir

  • \Vc7\atlmfc\src\mfc

    MFC'de belirli ActiveX denetim sınıflarının kaynak kodunu içerir

  • \Vc7\atlmfc\lib

    MFC ile ActiveX denetimleri geliştirmek için gereken kitaplıkları içerir

MFC ActiveX denetimleri için örnekler de vardır. Bu örnekler hakkında daha fazla bilgi için bkz . Denetim Örnekleri: MFC-Based ActiveX Denetimleri

Ayrıca bakınız

Kullanıcı Arabirimi Öğeleri