WM_SETREDRAW Nachricht

Sie senden die WM_SETREDRAW Nachricht an ein Fenster, damit Änderungen in diesem Fenster neu gezeichnet werden können oder um zu verhindern, dass Änderungen in diesem Fenster neu gezeichnet werden.

Um diese Nachricht zu senden, rufen Sie die SendMessage-Funktion mit den folgenden Parametern auf.

SendMessage(
  (HWND) hWnd,
  WM_SETREDRAW,
  (WPARAM) wParam,
  (LPARAM) lParam
);

Parameter

wParam

Der Zustand neu gezeichnet. Wenn dieser Parameter TRUE ist, kann der Inhalt nach einer Änderung neu gezeichnet werden. Wenn dieser Parameter FALSE ist, kann der Inhalt nach einer Änderung nicht erneut gezeichnet werden.

lParam

Dieser Parameter wird nicht verwendet.

Rückgabewert

Ihre Anwendung sollte 0 zurückgeben, wenn sie diese Nachricht verarbeitet.

Bemerkungen

Diese Meldung kann nützlich sein, wenn Ihre Anwendung einem Listenfeld mehrere Elemente hinzufügen muss. Ihre Anwendung kann diese Nachricht aufrufen, wobei wParam auf FALSE festgelegt ist, die Elemente hinzufügen und dann die Nachricht erneut aufrufen, wobei wParam auf TRUE festgelegt ist. Schließlich kann Ihre Anwendung RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN), um das Listenfeld neu zu streichen.

Hinweis

Sie sollten RedrawWindow mit den angegebenen Flags anstelle von InvalidateRect verwenden, da erstere für einige Steuerelemente erforderlich ist, die über einen eigenen Nichtclientbereich verfügen, oder über Fensterstile verfügen, die dazu führen, dass ihnen ein Nichtclientbereich zugewiesen wird (z. B. WS_THICKFRAME, WS_BORDER oder WS_EX_CLIENTEDGE). Wenn das Steuerelement keinen Nichtclientbereich aufweist, bewirkt RedrawWindow mit diesen Flags nur so viel Ungültiges wie InvalidateRect .

Durch das Übergeben einer WM_SETREDRAW Nachricht an die DefWindowProc-Funktion wird die WS_VISIBLE-Formatvorlage aus dem Fenster entfernt, wenn wParam auf FALSE festgelegt ist. Obwohl der Fensterinhalt auf dem Bildschirm sichtbar bleibt, gibt die IsWindowVisible-FunktionFALSE zurück, wenn sie in einem Fenster in diesem Zustand aufgerufen wird.

Wenn Sie eine WM_SETREDRAW Nachricht an die DefWindowProc-Funktion übergeben, wird die WS_VISIBLE-Formatvorlage dem Fenster hinzugefügt, falls nicht festgelegt, wenn wParam auf TRUE festgelegt ist. Wenn Ihre Anwendung die WM_SETREDRAW-Nachricht sendet, wobei wParam auf TRUE auf ein ausgeblendetes Fenster festgelegt ist, wird das Fenster sichtbar.

Windows 10 und höher; Windows Server 2016 und höher. Das System legt eine Eigenschaft mit dem Namen SysSetRedraw für ein Fenster fest, dessen Fensterprozedur WM_SETREDRAW Nachrichten an DefWindowProc übergibt. Sie können die GetProp-Funktion verwenden, um den Eigenschaftswert abzurufen, wenn er verfügbar ist. GetProp gibt einen Wert ungleich 0 zurück, wenn die Neuerstellung deaktiviert ist. GetProp gibt null zurück, wenn das Neuzeichnen aktiviert ist oder wenn die Window-Eigenschaft nicht vorhanden ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (einschließlich Windows.h)

Siehe auch