Bagikan melalui


Tentang Kontrol Bilah Kemajuan

Bilah kemajuan adalah jendela yang dapat digunakan aplikasi untuk menunjukkan kemajuan operasi yang panjang.

Ini terdiri dari persegi panjang yang dianimasikan saat operasi berlangsung.

Ilustrasi berikut ini memperlihatkan bilah kemajuan yang tidak menggunakan gaya visual.

screen shot of a progress bar that adds rectangles in a line to indicate progress

Ilustrasi berikut ini memperlihatkan bilah kemajuan menggunakan gaya visual. Tampilan kontrol akan bervariasi tergantung pada sistem operasi dan tema yang dipilih. Untuk informasi selengkapnya, lihat Gaya Visual.

screen shot of a progress bar that lengthens an animated green rectangle to indicate progress

Informasi selengkapnya terkandung di bawah judul berikut.

Menggunakan Bilah Kemajuan

Anda dapat membuat bilah kemajuan dengan menggunakan fungsi CreateWindowEx, menentukan kelas jendela PROGRESS_CLASS. Kelas jendela ini didaftarkan ketika DLL kontrol umum dimuat. Untuk informasi selengkapnya, lihat Tentang Kontrol Umum.

Kontrol juga tersedia di Kotak Alat Microsoft Visual Studio, yang disebut Kontrol Kemajuan.

Rentang dan Posisi Saat Ini

Rentang bilah kemajuan mewakili seluruh durasi operasi, dan posisi saat ini mewakili kemajuan yang telah dibuat aplikasi untuk menyelesaikan operasi. Prosedur jendela menggunakan rentang dan posisi saat ini untuk menentukan persentase bilah kemajuan untuk diisi dengan warna sorotan.

Jika Anda tidak mengatur nilai rentang, sistem menetapkan nilai minimum ke 0 dan nilai maksimum menjadi 100. Anda dapat menyesuaikan rentang ke bilangan bulat yang nyaman dengan menggunakan pesan PBM_SETRANGE.

Bilah kemajuan menyediakan beberapa pesan yang dapat Anda gunakan untuk mengatur posisi saat ini. Pesan PBM_SETPOS mengatur posisi ke nilai tertentu. Pesan PBM_DELTAPOS memajukan posisi dengan menambahkan nilai yang ditentukan ke posisi saat ini.

Pesan PBM_SETSTEP memungkinkan Anda menentukan tahapan langkah untuk bilah kemajuan. Selanjutnya, setiap kali Anda mengirim pesan PBM_STEPIT ke bilah kemajuan, posisi saat ini maju dengan kenaikan yang ditentukan. Secara default, tahapan langkah diatur ke 10.

Pemrosesan Pesan Bilah Kemajuan Default

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

Pesan Pemrosesan dilakukan
WM_CREATE Mengalokasikan dan menginisialisasi struktur awal.
WM_DESTROY Membebaskan semua sumber daya yang terkait dengan bilah kemajuan.
WM_ERASEBKGND Menggambar latar belakang dan batas bilah kemajuan.
WM_GETFONT Mengembalikan handel ke font saat ini. Bilah kemajuan saat ini tidak menggambar teks, sehingga mengirim pesan ini tidak berpengaruh pada kontrol.
WM_PAINT Gambar bilah kemajuan. Jika parameter wParam non-NULL, kontrol mengasumsikan bahwa nilainya adalah HDC dan melukis menggunakan konteks perangkat tersebut.
WM_SETFONT Menyimpan handel ke font baru dan mengembalikan handel ke font sebelumnya. Bilah kemajuan saat ini tidak menggambar teks, sehingga mengirim pesan ini tidak berpengaruh pada kontrol.

 

Gaya Marquee

Dengan membuat kontrol bilah kemajuan dengan gaya PBS_MARQUEE, Anda dapat menganimasikannya dengan cara yang menunjukkan aktivitas tetapi tidak menunjukkan proporsi tugas apa yang selesai. Bagian yang disorot dari bilah kemajuan bergerak berulang kali di sepanjang bilah. Anda dapat memulai dan menghentikan animasi, dan mengontrol kecepatannya, dengan mengirim pesan PBM_SETMARQUEE. Bilah kemajuan Marquee tidak memiliki rentang atau posisi.

Ilustrasi berikut menunjukkan bilah kemajuan dalam mode marquee. Bagian yang disorot bergerak melintasi bilah.

screen shot of a progress bar that moves a green highlight across a gray rectangle to indicate progress