Bagikan melalui


Tentang Kontrol Animasi

Kontrol animasi adalah jendela yang menampilkan klip Audio-Video Interleaved (AVI). Klip AVI adalah serangkaian bingkai bitmap seperti film. Kontrol animasi hanya dapat menampilkan klip AVI yang tidak berisi audio.

Salah satu penggunaan umum untuk kontrol animasi adalah menunjukkan aktivitas sistem selama operasi yang panjang. Ini dimungkinkan karena utas operasi terus dijalankan saat klip AVI ditampilkan. Misalnya, kotak dialog Temukan Windows Explorer menampilkan kaca pembesar bergerak saat sistem mencari file.

Catatan

Jika Anda menggunakan ComCtl32.dll versi 6, utas tidak didukung; pastikan aplikasi Anda tidak memblokir UI, atau animasi tidak akan terjadi.

 

Kontrol animasi dapat menampilkan klip AVI yang berasal dari file AVI yang tidak dikompresi atau dari file AVI yang dikompresi menggunakan pengodean run-length (BI_RLE8). Anda dapat menambahkan klip AVI ke aplikasi Anda sebagai sumber daya AVI, atau klip dapat menemani aplikasi Anda sebagai file AVI terpisah.

Catatan

File AVI, atau sumber daya, tidak boleh memiliki saluran suara. Kemampuan kontrol animasi sangat terbatas dan dapat berubah. Jika Anda memerlukan kontrol untuk menyediakan kemampuan pemutaran dan perekaman multimedia untuk aplikasi Anda, Anda dapat menggunakan kontrol MCIWnd. Untuk informasi selengkapnya, lihat Kelas Jendela MCIWnd.

 

Bagian ini membahas topik berikut.

Pembuatan Kontrol Animasi

Kontrol animasi milik kelas jendela ANIMATE_CLASS . Anda membuat kontrol animasi dengan menggunakan fungsi CreateWindow atau CreateWindowEx atau makro Animate_Create. Makro memposisikan kontrol animasi di sudut kiri atas jendela induk dan, jika gaya ACS_CENTER tidak ditentukan, mengatur lebar dan tinggi kontrol berdasarkan dimensi bingkai dalam klip AVI. Jika ACS_CENTER ditentukan, Animate_Create mengatur lebar dan tinggi kontrol ke nol. Anda dapat menggunakan fungsi SetWindowPos untuk mengatur posisi dan ukuran kontrol.

Jika Anda membuat kontrol animasi dalam kotak dialog atau dari sumber daya kotak dialog, kontrol akan dihancurkan secara otomatis saat pengguna menutup kotak dialog. Jika Anda membuat kontrol animasi dalam jendela, Anda harus secara eksplisit menghancurkan kontrol.

Tentang Pesan Kontrol Animasi

Aplikasi mengirim pesan ke kontrol animasi untuk membuka, memutar, menghentikan, dan menutup klip AVI yang sesuai. Setiap pesan memiliki satu atau beberapa makro yang dapat Anda gunakan alih-alih mengirim pesan secara eksplisit.

Setelah membuat kontrol animasi, aplikasi mengirim pesan ACM_OPEN untuk membuka klip AVI dan memuatnya ke dalam memori. Pesan menentukan jalur file AVI atau nama sumber daya AVI. Sistem memuat sumber daya AVI dari modul yang membuat kontrol animasi.

Jika kontrol animasi memiliki gaya ACS_AUTOPLAY , kontrol mulai memutar klip AVI segera setelah file AVI atau sumber daya AVI dibuka. Jika tidak, aplikasi dapat menggunakan pesan ACM_PLAY untuk memulai klip AVI. Aplikasi dapat menghentikan klip kapan saja dengan mengirim pesan ACM_STOP. Bingkai terakhir yang diputar tetap ditampilkan ketika kontrol selesai memutar klip AVI atau ketika ACM_STOP dikirim.

Kontrol animasi dapat mengirim dua kode pemberitahuan ke jendela induknya: ACN_START dan ACN_STOP. Sebagian besar aplikasi tidak menangani salah satu pemberitahuan.

Untuk menutup file AVI atau sumber daya AVI dan menghapusnya dari memori, aplikasi dapat menggunakan makro Animate_Close, yang mengirim ACM_OPEN dengan nama file atau nama sumber daya yang diatur ke NULL.

Pemrosesan Pesan Default

Bagian ini menjelaskan pesan jendela yang ditangani oleh prosedur jendela untuk kelas jendela ANIMATE_CLASS .

Pesan Pemrosesan dilakukan
WM_CLOSE Membebaskan file AVI atau sumber daya AVI yang terkait dengan kontrol animasi.
WM_DESTROY Membebaskan file AVI atau sumber daya AVI, membebaskan struktur data internal, lalu memanggil fungsi DefWindowProc.
WM_ERASEBKGND Menghapus latar belakang jendela menggunakan warna latar belakang saat ini untuk kontrol statis.
WM_NCCREATE Mengalokasikan dan menginisialisasi struktur data internal lalu memanggil DefWindowProc.
WM_NCHITTEST Mengembalikan nilai uji hit HTTRANSPARENT.
WM_PAINT Menggambar bingkai AVI dalam kontrol animasi.
WM_SIZE Memeriksa apakah kontrol memiliki gaya ACS_CENTER. Jika kontrol tidak, kontrol memanggil DefWindowProc. Jika tidak, ia memusatkan animasi dalam kontrol, membatalkan kontrol, lalu memanggil DefWindowProc.