Función RedrawWindow (winuser.h)

La función RedrawWindow actualiza el rectángulo o la región especificados en el área cliente de una ventana.

Sintaxis

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

Parámetros

[in] hWnd

Identificador de la ventana que se va a volver a dibujar. Si este parámetro es NULL, se actualiza la ventana de escritorio.

[in] lprcUpdate

Puntero a una estructura RECT que contiene las coordenadas, en unidades de dispositivo, del rectángulo de actualización. Este parámetro se omite si el parámetro hrgnUpdate identifica una región.

[in] hrgnUpdate

Identificador de la región de actualización. Si los parámetros hrgnUpdate y lprcUpdate son NULL, se agrega todo el área de cliente a la región de actualización.

[in] flags

Una o varias marcas de volver a dibujar. Este parámetro se puede usar para invalidar o validar una ventana, volver a dibujar y controlar qué ventanas se ven afectadas por RedrawWindow.

Las marcas siguientes se usan para invalidar la ventana.

Marca (invalidación) Descripción
RDW_ERASE
Hace que la ventana reciba un mensaje de WM_ERASEBKGND cuando se vuelva a dibujar la ventana. También se debe especificar la marca RDW_INVALIDATE; de lo contrario, RDW_ERASE no tiene ningún efecto.
RDW_FRAME
Hace que cualquier parte del área no cliente de la ventana que intersece la región de actualización reciba un mensaje de WM_NCPAINT . También se debe especificar la marca RDW_INVALIDATE; de lo contrario, RDW_FRAME no tiene ningún efecto. Normalmente, el mensaje de WM_NCPAINT no se envía durante la ejecución de RedrawWindow a menos que se especifique RDW_UPDATENOW o RDW_ERASENOW.
RDW_INTERNALPAINT
Hace que se publique un mensaje WM_PAINT en la ventana, independientemente de si alguna parte de la ventana no es válida.
RDW_INVALIDATE
Invalida lprcUpdate o hrgnUpdate (solo uno puede ser distinto de NULL). Si ambos son NULL, se invalida toda la ventana.
 

Las marcas siguientes se usan para validar la ventana.

Marca (validación) Descripción
RDW_NOERASE
Suprime los mensajes de WM_ERASEBKGND pendientes.
RDW_NOFRAME
Suprime los mensajes de WM_NCPAINT pendientes. Esta marca debe usarse con RDW_VALIDATE y normalmente se usa con RDW_NOCHILDREN. RDW_NOFRAME debe usarse con cuidado, ya que podría hacer que partes de una ventana se pinte incorrectamente.
RDW_NOINTERNALPAINT
Suprime los mensajes de WM_PAINT internos pendientes. Esta marca no afecta a WM_PAINT mensajes resultantes de un área de actualización que no sea NULL .
RDW_VALIDATE
Valida lprcUpdate o hrgnUpdate (solo uno puede ser distinto de NULL). Si ambos son NULL, se valida toda la ventana. Esta marca no afecta a los mensajes de WM_PAINT internos.
 

Las siguientes marcas controlan cuándo se vuelve a pintar. RedrawWindow no volverá a pintar a menos que se especifique una de estas marcas.

Marca Descripción
RDW_ERASENOW
Hace que las ventanas afectadas (según lo especificado por las marcas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban WM_NCPAINT y WM_ERASEBKGND mensajes, si es necesario, antes de que la función devuelva. WM_PAINT mensajes se reciben en el momento normal.
RDW_UPDATENOW
Hace que las ventanas afectadas (especificadas por las marcas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban mensajes WM_NCPAINT, WM_ERASEBKGND y WM_PAINT , si es necesario, antes de que la función devuelva.
 

De forma predeterminada, las ventanas afectadas por RedrawWindow dependen de si la ventana especificada tiene el estilo WS_CLIPCHILDREN. Las ventanas secundarias que no son del estilo WS_CLIPCHILDREN no se ven afectadas; Las ventanas que no WS_CLIPCHILDREN se validan o invalidan de forma recursiva hasta que se encuentre una ventana de WS_CLIPCHILDREN. Las marcas siguientes controlan qué ventanas se ven afectadas por la función RedrawWindow .

Marca Descripción
RDW_ALLCHILDREN
Incluye ventanas secundarias, si las hubiera, en la operación de volver a pintar.
RDW_NOCHILDREN
Excluye las ventanas secundarias, si las hubiera, de la operación de volver a pintar.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Cuando Se usa RedrawWindow para invalidar parte de la ventana de escritorio, la ventana de escritorio no recibe un mensaje de WM_PAINT . Para volver a dibujar el escritorio, una aplicación usa la marca RDW_ERASE para generar un mensaje de WM_ERASEBKGND .

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-draw-l1-1-0 (introducido en Windows 8)

Consulte también

GetUpdateRect

GetUpdateRgn

InvalidateRect

InvalidateRgn

Funciones de dibujo y dibujo

Información general sobre pintura y dibujo

RECT

UpdateWindow