RedrawWindow-Funktion (winuser.h)

Die RedrawWindow-Funktion aktualisiert das angegebene Rechteck oder den angegebenen Bereich im Clientbereich eines Fensters.

Syntax

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

Parameter

[in] hWnd

Ein Handle für das fenster, das neu gezeichnet werden soll. Wenn dieser Parameter NULL ist, wird das Desktopfenster aktualisiert.

[in] lprcUpdate

Ein Zeiger auf eine RECT-Struktur , die die Koordinaten des Updaterechtecks in Geräteeinheiten enthält. Dieser Parameter wird ignoriert, wenn der hrgnUpdate-Parameter einen Bereich identifiziert.

[in] hrgnUpdate

Ein Handle für den Updatebereich. Wenn sowohl die Parameter hrgnUpdate als auch lprcUpdateNULL sind, wird der gesamte Clientbereich dem Updatebereich hinzugefügt.

[in] flags

Mindestens ein Neuzeichnen von Flags. Dieser Parameter kann verwendet werden, um ein Fenster zu ungültig oder zu überprüfen, die Neulackierung zu steuern und zu steuern, welche Fenster von RedrawWindow betroffen sind.

Die folgenden Flags werden verwendet, um das Fenster für ungültig zu erklären.

Flag (Invalidierung) BESCHREIBUNG
RDW_ERASE
Bewirkt, dass das Fenster eine WM_ERASEBKGND Meldung empfängt, wenn das Fenster neu gezeichnet wird. Das flag RDW_INVALIDATE muss ebenfalls angegeben werden. andernfalls hat RDW_ERASE keine Auswirkungen.
RDW_FRAME
Bewirkt, dass jeder Teil des Nichtclientbereichs des Fensters, der den Updatebereich überschneidet, eine WM_NCPAINT Nachricht empfängt. Das flag RDW_INVALIDATE muss ebenfalls angegeben werden. andernfalls hat RDW_FRAME keine Auswirkungen. Die WM_NCPAINT Nachricht wird während der Ausführung von RedrawWindow in der Regel nicht gesendet, es sei denn, es wird RDW_UPDATENOW oder RDW_ERASENOW angegeben.
RDW_INTERNALPAINT
Bewirkt, dass eine WM_PAINT Nachricht im Fenster veröffentlicht wird, unabhängig davon, ob ein Teil des Fensters ungültig ist.
RDW_INVALIDATE
Ungültige Werte für lprcUpdate oder hrgnUpdate (nur eines darf nicht NULL sein). Wenn beide NULL sind, wird das gesamte Fenster ungültig.
 

Die folgenden Flags werden verwendet, um das Fenster zu überprüfen.

Flag (Validierung) BESCHREIBUNG
RDW_NOERASE
Unterdrückt alle ausstehenden WM_ERASEBKGND Nachrichten.
RDW_NOFRAME
Unterdrückt alle ausstehenden WM_NCPAINT Nachrichten. Dieses Flag muss mit RDW_VALIDATE verwendet werden und wird in der Regel mit RDW_NOCHILDREN verwendet. RDW_NOFRAME sollte mit Sorgfalt verwendet werden, da dies dazu führen kann, dass Teile eines Fensters falsch lackiert werden.
RDW_NOINTERNALPAINT
Unterdrückt alle ausstehenden internen WM_PAINT Nachrichten. Dieses Flag wirkt sich nicht auf WM_PAINT Meldungen aus einem Updatebereich ohne NULL aus.
RDW_VALIDATE
Überprüft lprcUpdate oder hrgnUpdate (nur eines darf nicht NULL sein). Wenn beide NULL sind, wird das gesamte Fenster überprüft. Dieses Flag wirkt sich nicht auf interne WM_PAINT Nachrichten aus.
 

Die folgenden Flags steuern, wann neu gezeichnet wird. RedrawWindow wird nur dann neu gezeichnet, wenn eines dieser Flags angegeben ist.

Flag Beschreibung
RDW_ERASENOW
Bewirkt, dass die betroffenen Fenster (wie durch die RDW_ALLCHILDREN- und RDW_NOCHILDREN-Flags angegeben) WM_NCPAINT - und WM_ERASEBKGND-Meldungen empfangen, falls erforderlich, bevor die Funktion zurückgibt. WM_PAINT Nachrichten werden zur normalen Zeit empfangen.
RDW_UPDATENOW
Bewirkt, dass die betroffenen Fenster (wie durch die flags RDW_ALLCHILDREN und RDW_NOCHILDREN angegeben) WM_NCPAINT, WM_ERASEBKGND und WM_PAINT-Nachrichten empfangen, falls erforderlich, bevor die Funktion zurückgibt.
 

Standardmäßig hängen die von RedrawWindow betroffenen Fenster davon ab, ob das angegebene Fenster den WS_CLIPCHILDREN Stil aufweist. Untergeordnete Fenster, die nicht die WS_CLIPCHILDREN Formatvorlage sind, sind nicht betroffen; Nicht-WS_CLIPCHILDREN Fenster werden rekursiv überprüft oder ungültig, bis ein WS_CLIPCHILDREN Fenster gefunden wird. Die folgenden Flags steuern, welche Fenster von der RedrawWindow-Funktion betroffen sind.

Flag Beschreibung
RDW_ALLCHILDREN
Schließt ggf. untergeordnete Fenster in den Neulackierungsvorgang ein.
RDW_NOCHILDREN
Schließt untergeordnete Fenster (sofern vorhanden) vom Neulackierungsvorgang aus.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Hinweise

Wenn RedrawWindow verwendet wird, um einen Teil des Desktopfensters zu ungültig zu machen, empfängt das Desktopfenster keine WM_PAINT Meldung. Um den Desktop neu zu streichen, verwendet eine Anwendung das flag RDW_ERASE, um eine WM_ERASEBKGND Nachricht zu generieren.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-draw-l1-1-0 (eingeführt in Windows 8)

Weitere Informationen

GetUpdateRect

GetUpdateRgn

InvalidateRect

InvalidateRgn

Mal- und Zeichenfunktionen

Übersicht über Das Malen und Zeichnen

RECT

UpdateWindow