Funzione RedrawWindow (winuser.h)

La funzione RedrawWindow aggiorna il rettangolo o l'area specificata nell'area client di una finestra.

Sintassi

BOOL RedrawWindow(
  [in] HWND       hWnd,
  [in] const RECT *lprcUpdate,
  [in] HRGN       hrgnUpdate,
  [in] UINT       flags
);

Parametri

[in] hWnd

Handle per la finestra da ridisegnare. Se questo parametro è NULL, la finestra desktop viene aggiornata.

[in] lprcUpdate

Puntatore a una struttura RECT contenente le coordinate, nelle unità dispositivo, del rettangolo di aggiornamento. Questo parametro viene ignorato se il parametro hrgnUpdate identifica un'area.

[in] hrgnUpdate

Handle per l'area di aggiornamento. Se i parametri hrgnUpdate e lprcUpdate sono NULL, l'intera area client viene aggiunta all'area di aggiornamento.

[in] flags

Uno o più flag di ridisegno. Questo parametro può essere usato per invalidare o convalidare una finestra, il repainting del controllo e controllare quali finestre sono interessate da RedrawWindow.

I flag seguenti vengono usati per invalidare la finestra.

Flag (invalidazione) Descrizione
RDW_ERASE
Determina che la finestra riceva un messaggio di WM_ERASEBKGND quando la finestra viene riinteduta. È necessario specificare anche il flag RDW_INVALIDATE; in caso contrario, RDW_ERASE non ha alcun effetto.
RDW_FRAME
Determina che qualsiasi parte dell'area noncliente della finestra che interseca l'area di aggiornamento per ricevere un messaggio di WM_NCPAINT . È necessario specificare anche il flag RDW_INVALIDATE; in caso contrario, RDW_FRAME non ha alcun effetto. Il messaggio WM_NCPAINT viene in genere inviato durante l'esecuzione di RedrawWindow a meno che non sia specificato RDW_UPDATENOW o RDW_ERASENOW.
RDW_INTERNALPAINT
Causa la pubblicazione di un messaggio di WM_PAINT nella finestra indipendentemente dal fatto che una parte della finestra non sia valida.
RDW_INVALIDATE
Invalidates lprcUpdate o hrgnUpdate (solo uno può essere diverso da NULL). Se entrambi sono NULL, l'intera finestra non è valida.
 

I flag seguenti vengono usati per convalidare la finestra.

Flag (convalida) Descrizione
RDW_NOERASE
Elimina eventuali messaggi WM_ERASEBKGND in sospeso.
RDW_NOFRAME
Elimina eventuali messaggi di WM_NCPAINT in sospeso. Questo flag deve essere usato con RDW_VALIDATE ed è in genere usato con RDW_NOCHILDREN. RDW_NOFRAME deve essere usato con cura, perché potrebbe causare parti di una finestra dipinta in modo non corretto.
RDW_NOINTERNALPAINT
Elimina eventuali messaggi di WM_PAINT interni in sospeso. Questo flag non influisce sui messaggi WM_PAINT risultanti da un'area di aggiornamento non NULL .
RDW_VALIDATE
Convalida lprcUpdate o hrgnUpdate (solo uno può essere diverso da NULL). Se entrambi sono NULL, l'intera finestra viene convalidata. Questo flag non influisce sui messaggi interni WM_PAINT .
 

I flag seguenti controllano quando si verifica il repainting. RedrawWindow non eseguirà il repaint a meno che non venga specificato uno di questi flag.

Flag Descrizione
RDW_ERASENOW
Causa la ricezione di WM_NCPAINT e WM_ERASEBKGND messaggi, come specificato dai flag di RDW_ALLCHILDREN e di RDW_NOCHILDREN, prima che la funzione venga restituita. WM_PAINT messaggi vengono ricevuti al momento ordinario.
RDW_UPDATENOW
Determina la ricezione di WM_NCPAINT, WM_ERASEBKGNDe WM_PAINT messaggi, come specificato dai flag di RDW_ALLCHILDREN e di RDW_NOCHILDREN, prima che la funzione restituisca.
 

Per impostazione predefinita, le finestre interessate da RedrawWindow dipendono dal fatto che la finestra specificata abbia lo stile WS_CLIPCHILDREN. Le finestre figlio che non sono lo stile WS_CLIPCHILDREN non sono interessate; le finestre non WS_CLIPCHILDREN vengono convalidate in modo ricorsivo o invalidate fino a quando non viene rilevata una finestra WS_CLIPCHILDREN. I flag seguenti controllano quali finestre sono interessate dalla funzione RedrawWindow .

Flag Descrizione
RDW_ALLCHILDREN
Include finestre figlio, se presenti, nell'operazione di ripainting.
RDW_NOCHILDREN
Esclude le finestre figlio, se presenti, dall'operazione di ripainting.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

Quando RedrawWindow viene usato per invalidare la parte della finestra desktop, la finestra desktop non riceve un messaggio di WM_PAINT . Per eseguire il repository del desktop, un'applicazione usa il flag di RDW_ERASE per generare un messaggio di WM_ERASEBKGND .

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-draw-l1-1-0 (introdotto in Windows 8)

Vedi anche

GetUpdateRect

GetUpdateRgn

InvalidateRect

InvalidateRgn

Funzioni di disegno e disegno

Panoramica di disegno e disegno

RECT

UpdateWindow