Bagikan melalui


Kontrol ActiveX MFC

Kontrol ActiveX adalah komponen perangkat lunak yang dapat digunakan kembali berdasarkan Model Objek Komponen (COM) yang mendukung berbagai fungsi OLE dan dapat disesuaikan agar sesuai dengan banyak kebutuhan perangkat lunak.

Penting

ActiveX adalah teknologi warisan yang tidak boleh digunakan untuk pengembangan baru. Untuk informasi selengkapnya, lihat Kontrol ActiveX.

Kontrol ActiveX dirancang untuk digunakan baik dalam kontainer kontrol ActiveX biasa maupun di Internet, di halaman World Wide Web. Anda dapat membuat kontrol ActiveX baik dengan MFC, yang dijelaskan di sini, atau dengan Pustaka Templat Aktif (ATL).

Kontrol ActiveX dapat menggambar dirinya sendiri di jendelanya sendiri, merespons peristiwa (seperti klik mouse), dan dikelola melalui antarmuka yang mencakup properti dan metode yang mirip dengan yang ada di objek Automation.

Kontrol ini dapat dikembangkan untuk banyak kegunaan, seperti akses database, pemantauan data, atau grafik. Selain portabilitasnya, kontrol ActiveX mendukung fitur yang sebelumnya tidak tersedia untuk kontrol ActiveX, seperti kompatibilitas dengan kontainer OLE yang ada dan kemampuan untuk mengintegrasikan menu mereka dengan menu kontainer OLE. Selain itu, kontrol ActiveX sepenuhnya mendukung Automation, yang memungkinkan kontrol untuk mengekspos properti baca\tulis dan serangkaian metode yang dapat dipanggil oleh pengguna kontrol.

Anda dapat membuat kontrol dan kontrol ActiveX tanpa jendela yang hanya membuat jendela saat aktif. Kontrol tanpa jendela mempercepat tampilan aplikasi Anda dan memungkinkan untuk memiliki kontrol transparan dan nonrektangular. Anda juga dapat memuat properti kontrol ActiveX secara asinkron.

Kontrol ActiveX diimplementasikan sebagai server dalam proses (biasanya objek kecil) yang dapat digunakan dalam kontainer OLE apa pun. Perhatikan bahwa fungsionalitas penuh kontrol ActiveX hanya tersedia saat digunakan dalam kontainer OLE yang dirancang untuk mengetahui kontrol ActiveX. Lihat Kontrol ActiveX Port ke Aplikasi Lain untuk daftar kontainer yang mendukung kontrol ActiveX. Jenis kontainer ini, selanjutnya disebut "kontainer kontrol", dapat mengoperasikan kontrol ActiveX dengan menggunakan properti dan metode kontrol, dan menerima pemberitahuan dari kontrol ActiveX dalam bentuk peristiwa. Gambar berikut menunjukkan interaksi ini.

Interplay of ActiveX control container and control.
Interaksi Antara Kontainer Kontrol ActiveX dan Kontrol ActiveX Berjendela

Untuk informasi terbaru tentang mengoptimalkan kontrol ActiveX Anda, lihat Kontrol ActiveX MFC: Pengoptimalan.

Untuk membuat kontrol MFC ActiveX, lihat Membuat proyek kontrol ActiveX.

Untuk informasi selengkapnya, lihat:

Komponen Dasar Kontrol ActiveX

Kontrol ActiveX menggunakan beberapa elemen terprogram untuk berinteraksi secara efisien dengan kontainer kontrol dan dengan pengguna. Ini adalah kelas COleControl, sekumpulan fungsi penembakan peristiwa, dan peta pengiriman.

Setiap objek kontrol ActiveX yang Anda kembangkan mewarisi serangkaian fitur yang kuat dari kelas dasar MFC-nya, COleControl. Fitur-fitur ini termasuk aktivasi di tempat, dan logika Automation. COleControl dapat menyediakan objek kontrol dengan fungsionalitas yang sama dengan objek jendela MFC, ditambah kemampuan untuk menembakkan peristiwa. COleControl juga dapat menyediakan kontrol tanpa jendela, yang mengandalkan kontainer mereka untuk bantuan dengan beberapa fungsionalitas yang disediakan jendela (tangkapan mouse, fokus keyboard, pengguliran), tetapi menawarkan tampilan yang jauh lebih cepat.

Karena kelas kontrol berasal dari COleControl, kelas ini mewarisi kemampuan untuk mengirim, atau "menembak," pesan, yang disebut peristiwa, ke kontainer kontrol ketika kondisi tertentu terpenuhi. Peristiwa ini digunakan untuk memberi tahu kontainer kontrol ketika sesuatu yang penting terjadi dalam kontrol. Anda dapat mengirim informasi tambahan tentang peristiwa ke kontainer kontrol dengan melampirkan parameter ke peristiwa. Untuk informasi selengkapnya tentang peristiwa kontrol ActiveX, lihat artikel Kontrol ActiveX MFC: Peristiwa.

Elemen akhir adalah peta pengiriman, yang digunakan untuk mengekspos sekumpulan fungsi (disebut metode) dan atribut (disebut properti) ke pengguna kontrol. Properti memungkinkan kontainer kontrol atau pengguna kontrol memanipulasi kontrol dengan berbagai cara. Pengguna dapat mengubah tampilan kontrol, mengubah nilai kontrol tertentu, atau membuat permintaan kontrol, seperti mengakses bagian data tertentu yang dipertahankan kontrol. Antarmuka ini ditentukan oleh pengembang kontrol dan didefinisikan menggunakan Tampilan Kelas. Untuk informasi selengkapnya tentang metode dan properti kontrol ActiveX, lihat artikel Kontrol ActiveX MFC: Metode dan Properti.

Interaksi Antara Kontrol dengan Kontainer Kontrol Windows dan ActiveX

Ketika kontrol digunakan dalam kontainer kontrol, kontrol menggunakan dua mekanisme untuk berkomunikasi: kontrol tersebut mengekspos properti dan metode, dan menembakkan peristiwa. Gambar berikut menunjukkan bagaimana kedua mekanisme ini diterapkan.

ActiveX control communicates with its container.
Komunikasi Antara Kontainer Kontrol ActiveX dan Kontrol ActiveX

Gambar sebelumnya juga menggambarkan bagaimana antarmuka OLE lainnya (selain otomatisasi dan peristiwa) ditangani oleh kontrol.

Semua komunikasi kontrol dengan kontainer dilakukan oleh COleControl. Untuk menangani beberapa permintaan kontainer, COleControl akan memanggil fungsi anggota yang diimplementasikan di kelas kontrol. Semua metode dan beberapa properti ditangani dengan cara ini. Kelas kontrol Anda juga dapat memulai komunikasi dengan kontainer dengan memanggil fungsi anggota .COleControl Peristiwa dipecat dengan cara ini.

Status Aktif dan Tidak Aktif dari Kontrol ActiveX

Kontrol memiliki dua status dasar: aktif dan tidak aktif. Secara tradisional, negara-negara ini dibedakan oleh apakah kontrol memiliki jendela. Kontrol aktif memiliki jendela; kontrol tidak aktif tidak. Dengan pengenalan aktivasi tanpa jendela, perbedaan ini tidak lagi universal, tetapi masih berlaku untuk banyak kontrol.

Ketika kontrol tanpa jendela aktif, kontrol ini memanggil tangkapan mouse, fokus keyboard, gulir, dan layanan jendela lainnya dari kontainernya. Anda juga dapat menyediakan interaksi mouse ke kontrol yang tidak aktif, serta membuat kontrol yang menunggu hingga diaktifkan untuk membuat jendela.

Ketika kontrol dengan jendela menjadi aktif, ia dapat berinteraksi sepenuhnya dengan kontainer kontrol, pengguna, dan Windows. Gambar di bawah ini menunjukkan jalur komunikasi antara kontrol ActiveX, kontainer kontrol, dan sistem operasi.

Msg processing in active windowed ActiveX control.
Pemrosesan Pesan Windows dalam Kontrol ActiveX Berjendela (Saat Aktif)

Serialisasi

Kemampuan untuk menserialisasikan data, kadang-kadang disebut sebagai persistensi, memungkinkan kontrol untuk menulis nilai propertinya ke penyimpanan persisten. Kontrol kemudian dapat dibuat ulang dengan membaca status objek dari penyimpanan.

Perhatikan bahwa kontrol tidak bertanggung jawab untuk mendapatkan akses ke media penyimpanan. Sebaliknya, kontainer kontrol bertanggung jawab untuk memberikan kontrol dengan media penyimpanan untuk digunakan pada waktu yang sesuai. Untuk informasi selengkapnya tentang serialisasi, lihat artikel Kontrol ActiveX MFC: Serialisasi. Untuk informasi tentang mengoptimalkan serialisasi, lihat Mengoptimalkan Persistensi dan Inisialisasi di Kontrol ActiveX: Pengoptimalan.

Menginstal Kelas dan Alat Kontrol ActiveX

Saat Anda menginstal Visual C++, kelas kontrol MFC ActiveX dan DLL run-time kontrol ActiveX ritel dan debug secara otomatis diinstal jika kontrol ActiveX dipilih di Penyiapan (dipilih secara default).

Secara default, kelas dan alat kontrol ActiveX diinstal di subdirektori berikut di bawah \Program Files\Microsoft Visual Studio .NET:

  • \Common7\Tools

    Berisi file Kontainer Uji (TstCon32.exe, serta file Bantuannya).

  • \Vc7\atlmfc\include

    Berisi file include yang diperlukan untuk mengembangkan kontrol ActiveX dengan MFC

  • \Vc7\atlmfc\src\mfc

    Berisi kode sumber untuk kelas kontrol ActiveX tertentu di MFC

  • \Vc7\atlmfc\lib

    Berisi pustaka yang diperlukan untuk mengembangkan kontrol ActiveX dengan MFC

Ada juga sampel untuk kontrol MFC ActiveX. Untuk informasi selengkapnya tentang sampel ini, lihat Sampel Kontrol: Kontrol ActiveX Berbasis MFC

Baca juga

Elemen Antarmuka Pengguna