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
RDW_ERASE
Menyebabkan jendela menerima pesan WM_ERASEBKGND saat jendela dicat ulang. Bendera RDW_INVALIDATE juga harus ditentukan; jika tidak, RDW_ERASE tidak berpengaruh.
RDW_FRAME
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.
RDW_INTERNALPAINT
Menyebabkan pesan WM_PAINT diposting ke jendela terlepas dari apakah ada bagian jendela yang tidak valid.
RDW_INVALIDATE
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
RDW_NOERASE
Menyembunyikan pesan WM_ERASEBKGND yang tertunda.
RDW_NOFRAME
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.
RDW_NOINTERNALPAINT
Menyembunyikan pesan WM_PAINT internal yang tertunda. Bendera ini tidak memengaruhi pesan WM_PAINT yang dihasilkan dari area pembaruan non-NULL.
RDW_VALIDATE
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
RDW_ERASENOW
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.
RDW_UPDATENOW
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
RDW_ALLCHILDREN
Termasuk jendela anak, jika ada, dalam operasi pengecatan ulang.
RDW_NOCHILDREN
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)

Lihat juga

GetUpdateRect

GetUpdateRgn

InvalidateRect

InvalidateRgn

Fungsi Melukis dan Menggambar

Gambaran Umum Melukis dan Menggambar

RECT

UpdateWindow