Aracılığıyla paylaş


MFC ActiveX Denetimleri

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.

Yalnızca etkin olduklarında pencere oluşturan penceresiz ActiveX denetimleri ve denetimleri 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.

Interplay of ActiveX control container and control.
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 bkz.

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. COleControlbir 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.

Windows ve ActiveX Denetim Kapsayıcıları ile Denetimler 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 control communicates with its container.
ActiveX Denetim Kapsayıcısı ile ActiveX Denetimi Arasındaki İletişim

Önceki şekilde, diğer OLE arabirimlerinin (otomasyon ve olayların yanı sıra) denetimler tarafından nasıl işleneceğini de göstermektedir.

Bir denetimin kapsayıcıyla tüm iletişimi tarafından COleControlgerçekleştirilir. Kapsayıcının bazı isteklerini işlemek için denetim COleControl sınıfında uygulanan üye işlevleri çağrılır. Tüm yöntemler ve bazı özellikler bu şekilde işlenir. Denetiminizin sınıfı, öğesinin üye işlevlerini COleControlç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 denetim bunu yapmadı. 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.

Msg processing in active windowed ActiveX control.
Pencereli ActiveX Denetiminde Windows İleti İşleme (Etkin Olduğunda)

Serileş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 C++ 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çilirse otomatik olarak yüklenir (varsayılan olarak seçilirler).

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.exe ve 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 Tabanlı ActiveX Denetimleri

Ayrıca bkz.

Kullanıcı Arabirimi Öğeleri