Fungsi RedrawWindow (winuser.h)
Fungsi RedrawWindow memperbarui persegi panjang atau wilayah yang ditentukan di area klien jendela.
Sintaks
BOOL RedrawWindow(
[in] HWND hWnd,
[in] const RECT *lprcUpdate,
[in] HRGN hrgnUpdate,
[in] UINT flags
);
Parameter
[in] hWnd
Pegangan ke jendela untuk digambar ulang. Jika parameter ini NULL, jendela desktop diperbarui.
[in] lprcUpdate
Penunjuk ke struktur RECT yang berisi koordinat, dalam unit perangkat, dari persegi panjang pembaruan. Parameter ini diabaikan jika parameter hrgnUpdate mengidentifikasi wilayah.
[in] hrgnUpdate
Handel ke wilayah pembaruan. Jika parameter hrgnUpdate dan lprcUpdate adalah NULL, seluruh area klien ditambahkan ke wilayah pembaruan.
[in] flags
Satu atau beberapa bendera gambar ulang. Parameter ini dapat digunakan untuk membatalkan atau memvalidasi jendela, mengontrol pengecatan ulang, dan mengontrol jendela mana yang dipengaruhi oleh RedrawWindow.
Bendera berikut digunakan untuk membatalkan jendela.
Bendera (pembatalan) | Deskripsi |
---|---|
|
Menyebabkan jendela menerima pesan WM_ERASEBKGND saat jendela dicat ulang. Bendera RDW_INVALIDATE juga harus ditentukan; jika tidak, RDW_ERASE tidak berpengaruh. |
|
Menyebabkan bagian mana pun dari area nonkelola jendela yang berpotangan dengan wilayah pembaruan untuk menerima pesan WM_NCPAINT . Bendera RDW_INVALIDATE juga harus ditentukan; jika tidak, RDW_FRAME tidak berpengaruh. Pesan WM_NCPAINT biasanya tidak dikirim selama eksekusi RedrawWindow kecuali RDW_UPDATENOW atau RDW_ERASENOW ditentukan. |
|
Menyebabkan pesan WM_PAINT diposting ke jendela terlepas dari apakah ada bagian jendela yang tidak valid. |
|
Membatalkan lprcUpdate atau hrgnUpdate (hanya satu yang mungkin non-NULL). Jika keduanya null, seluruh jendela tidak valid. |
Bendera berikut digunakan untuk memvalidasi jendela.
Bendera (validasi) | Deskripsi |
---|---|
|
Menyembunyikan pesan WM_ERASEBKGND yang tertunda. |
|
Menyembunyikan pesan WM_NCPAINT yang tertunda. Bendera ini harus digunakan dengan RDW_VALIDATE dan biasanya digunakan dengan RDW_NOCHILDREN. RDW_NOFRAME harus digunakan dengan hati-hati, karena dapat menyebabkan bagian jendela dicat dengan tidak benar. |
|
Menyembunyikan pesan WM_PAINT internal yang tertunda. Bendera ini tidak memengaruhi pesan WM_PAINT yang dihasilkan dari area pembaruan non-NULL. |
|
Memvalidasi lprcUpdate atau hrgnUpdate (hanya satu yang mungkin non-NULL). Jika keduanya NULL, seluruh jendela divalidasi. Bendera ini tidak memengaruhi pesan WM_PAINT internal. |
Bendera berikut mengontrol saat pengecatan ulang terjadi. RedrawWindow tidak akan dicat ulang kecuali salah satu bendera ini ditentukan.
Bendera | Deskripsi |
---|---|
|
Menyebabkan jendela yang terpengaruh (seperti yang ditentukan oleh bendera RDW_ALLCHILDREN dan RDW_NOCHILDREN) menerima pesan WM_NCPAINT dan WM_ERASEBKGND , jika perlu, sebelum fungsi kembali. WM_PAINT pesan diterima pada waktu biasa. |
|
Menyebabkan jendela yang terpengaruh (seperti yang ditentukan oleh bendera RDW_ALLCHILDREN dan RDW_NOCHILDREN) menerima pesan WM_NCPAINT, WM_ERASEBKGND, dan WM_PAINT , jika perlu, sebelum fungsi kembali. |
Secara default, jendela yang dipengaruhi oleh RedrawWindow bergantung pada apakah jendela yang ditentukan memiliki gaya WS_CLIPCHILDREN. Jendela anak yang bukan gaya WS_CLIPCHILDREN tidak terpengaruh; jendela yang tidak WS_CLIPCHILDREN divalidasi atau tidak valid secara rekursif hingga jendela WS_CLIPCHILDREN ditemui. Bendera berikut mengontrol jendela mana yang dipengaruhi oleh fungsi RedrawWindow .
Bendera | Deskripsi |
---|---|
|
Termasuk jendela anak, jika ada, dalam operasi pengecatan ulang. |
|
Mengecualikan jendela anak, jika ada, dari operasi pengecatan ulang. |
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol.
Keterangan
Ketika RedrawWindow digunakan untuk membatalkan bagian dari jendela desktop, jendela desktop tidak menerima pesan WM_PAINT . Untuk mengecat ulang desktop, aplikasi menggunakan bendera RDW_ERASE untuk menghasilkan pesan WM_ERASEBKGND .
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-draw-l1-1-0 (diperkenalkan di Windows 8) |