mensaje de WM_SETREDRAW

Envía el mensaje WM_SETREDRAW a una ventana para permitir que los cambios de esa ventana se vuelvan a dibujar o para evitar que se vuelvan a dibujar los cambios en esa ventana.

Para enviar este mensaje, llame a la función SendMessage con los parámetros siguientes.

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

Parámetros

wParam

Estado de volver a dibujar. Si este parámetro es TRUE, el contenido se puede volver a dibujar después de un cambio. Si este parámetro es FALSE, el contenido no se puede volver a dibujar después de un cambio.

lParam

Este parámetro no se usa.

Valor devuelto

La aplicación debe devolver 0 si procesa este mensaje.

Comentarios

Este mensaje puede ser útil si la aplicación debe agregar varios elementos a un cuadro de lista. La aplicación puede llamar a este mensaje con wParam establecido en FALSE, agregar los elementos y, a continuación, llamar al mensaje de nuevo con wParam establecido en TRUE. Por último, la aplicación puede llamar a RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN) para que se vuelva a dibujar el cuadro de lista.

Nota

Debe usar RedrawWindow con las marcas especificadas, en lugar de InvalidateRect, porque la anterior es necesaria para algunos controles que tienen un área no cliente propia o tienen estilos de ventana que hacen que se les asigne un área no cliente (como WS_THICKFRAME, WS_BORDER o WS_EX_CLIENTEDGE). Si el control no tiene un área no cliente, RedrawWindow con estas marcas solo hará tanta invalidación como lo haría InvalidateRect .

Al pasar un mensaje de WM_SETREDRAW a la función DefWindowProc , se quita el estilo WS_VISIBLE de la ventana cuando wParam está establecido en FALSE. Aunque el contenido de la ventana permanece visible en la pantalla, la función IsWindowVisible devuelve FALSE cuando se llama a en una ventana en este estado.

Al pasar un mensaje de WM_SETREDRAW a la función DefWindowProc , se agrega el estilo WS_VISIBLE a la ventana, si no se establece, cuando wParam está establecido en TRUE. Si la aplicación envía el mensaje WM_SETREDRAW con wParam establecido en TRUE a una ventana oculta, la ventana se vuelve visible.

Windows 10 y versiones posteriores; Windows Server 2016 y versiones posteriores. El sistema establece una propiedad denominada SysSetRedraw en una ventana cuyo procedimiento de ventana pasa WM_SETREDRAW mensajes a DefWindowProc. Puede usar la función GetProp para obtener el valor de la propiedad cuando esté disponible. GetProp devuelve un valor distinto de cero cuando se deshabilita redraw. GetProp devolverá cero cuando se habilite el nuevo dibujo o cuando la propiedad window no exista.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winuser.h (incluye Windows.h)

Consulte también