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 |
---|---|
|
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. |
|
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. |
|
Causa la pubblicazione di un messaggio di WM_PAINT nella finestra indipendentemente dal fatto che una parte della finestra non sia valida. |
|
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 |
---|---|
|
Elimina eventuali messaggi WM_ERASEBKGND in sospeso. |
|
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. |
|
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 . |
|
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 |
---|---|
|
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. |
|
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 |
---|---|
|
Include finestre figlio, se presenti, nell'operazione di ripainting. |
|
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) |