Bagikan melalui


Menggambar Tanpa Pesan WM_PAINT

Meskipun aplikasi melakukan sebagian besar operasi menggambar saat pesan WM_PAINT sedang diproses, terkadang lebih efisien bagi aplikasi untuk menggambar langsung di jendela tanpa mengandalkan pesan WM_PAINT . Ini dapat berguna ketika pengguna membutuhkan umpan balik segera, seperti saat memilih teks dan menyeret atau mengukur objek. Dalam kasus seperti itu, aplikasi biasanya menarik saat memproses pesan keyboard atau mouse.

Untuk menggambar di jendela tanpa menggunakan pesan WM_PAINT , aplikasi menggunakan fungsi GetDC atau GetDCEx untuk mengambil konteks perangkat tampilan untuk jendela. Dengan konteks perangkat tampilan, aplikasi dapat menggambar di jendela dan menghindari mengganggu jendela lain. Ketika aplikasi telah selesai menggambar, aplikasi memanggil fungsi ReleaseDC untuk merilis konteks perangkat tampilan untuk digunakan oleh aplikasi lain.

Saat menggambar tanpa menggunakan pesan WM_PAINT , aplikasi biasanya tidak membatalkan jendela. Sebaliknya, ia menarik dengan cara seperti itu dapat dengan mudah memulihkan jendela dan menghapus gambar. Misalnya, ketika pengguna memilih teks atau objek, aplikasi biasanya menggambar pilihan dengan membalikkan apa pun yang sudah ada di jendela. Aplikasi dapat menghapus pilihan dan memulihkan konten asli jendela hanya dengan membalikkan lagi.

Aplikasi ini bertanggung jawab untuk mengelola setiap perubahan yang dilakukan pada jendela dengan hati-hati. Secara khusus, jika aplikasi menarik pilihan dan pesan WM_PAINT intervensi terjadi, aplikasi harus memastikan bahwa gambar apa pun yang dilakukan selama pesan tidak merusak pilihan. Untuk menghindari hal ini, banyak aplikasi menghapus pilihan, melakukan operasi menggambar biasa, lalu memulihkan pilihan saat menggambar selesai.