• Biblioteca = user32.lib • Cabecera = winuser.h • Unicode = No • Plataforma = Nada•
La función RedrawWindow actualiza el rectángulo o región especificado en el área de cliente de una ventana.
BOOL RedrawWindow( HWND hWnd, // manipulador de ventana CONST RECT *lprcUpdate, // dirección de estructura con el rectángulo de actualización HRGN hrgnUpdate, // manipulador de región de actualización UINT flags // array de banderas de retrazado );
hWnd: identifica la ventana a redibujar. Si este parámetro es NULL, se actualiza la ventana del escritorio.
lprcUpdate: apunta a una estructura RECT que contiene las coordenadas del rectángulo de actualización. Este parámetro se ignora si el parámetro hrgnUpdate identifica una región.
hrgnUpdate: identifica una región de actualización. Si los parámetros hrgnUpdate y lprcUpdate son ambos NULL, se añade toda el área de cliente a la región de actualización.
flags: especifica una o más banderas de retrazado. Este parámetro puede ser una combinación de banderas que invalidan o validan una ventana, controla el repintado, y controlan que´ventanas se ven afectadas por RedrawWindow.
Las siguientes banderas se usan para invalidar la ventana:
Bandera (invalidación) | Descripción |
---|---|
RDW_ERASE | Hace que la ventana reciba un mensaje WM_ERASEBKGND cuando sea repintada. La bandera RDW_INVALIDATE también debe ser especificada, de otro modo RDW_ERASE no tiene efectos. |
RDW_FRAME | Hace que cualquier parte del área de no cliente de la ventana que se interseccione la región de actualización reciba un mensaje WM_NCPAINT. La bandera RDW_INVALIDATE debe ser especificada también, de otro modo, RDW_FRAME no tiene efectos. El mensaje WM_NCPAINT no se suele eviar durante la ejecución de RedrawWindow salvo que se especifique RDW_UPDATENOW o RDW_ERASENOW. |
RDW_INTERNALPAINT | Hace que se postee un mensaje WM_PAINT a la ventana aunque ninguna parte de la ventana sea ínválida. |
RDW_INVALIDATE | Invalida lprcUpdate o hrgnUpdate (sólo uno puede ser no nulo). Si ambos son NULL, se invalida la ventana completa. |
Las banceras siguientes se usan para validar la ventana:
Bandera (validación) | Descripción |
---|---|
RDW_NOERASE | Elimina cualquier mensaje WM_ERASEBKGND pendiente. |
RDW_NOFRAME | Elimina cualquier mensaje WM_NCPAINT pendiente. Esta bandera debe usarse con RDW_VALIDATE y generalmente se usa con RDW_NOCHILDREN. RDW_NOFRAME debe usarse con cuidado, ya que puede hacer que partes de una ventana se pinted de forma inapropiada. |
RDW_NOINTERNALPAINT | Elimina cualquier mensaje WM_PAINT interno pendiente. Esta bandera no afecta a mensajes WM_PAINT resultado de un área de actualización no nula. |
RDW_VALIDATE | Valida lprcUpdate o hrgnUpdate (sólo una puede ser no nula). Si ambas son NULL, se valida toda la ventana. Esta bandera no afecta a los mensajes WM_PAINT internos. |
Las siguientes banderas controlan cunado ocurre un repintado. RedrawWindow no repintará a no ser que se especifique una de estas banderas.
Bandera | Descripción |
---|---|
RDW_ERASENOW | Hace que las ventanas afectadas (las especificadas por las banderas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban los mensajes WM_NCPAINT y WM_ERASEBKGND, si es necesario, antes de que la función regrese. Los mensajes WM_PAINT se reciben en su momento habitual. |
RDW_UPDATENOW | Hace que las ventanas afectadas (las especificadas por las banderas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban los mensajes WM_NCPAINT, WM_ERASEBKGND y WM_PAINT, si es necesario, antes de que la función regrese. |
por defecto, las ventanas afectadas por RedrawWindow dependen de si la ventana dada tiene el estilo WS_CLIPCHILDREN. Las ventanas hijas que no tengan el estilo WS_CLIPCHILDREN no se ven afectadas; las ventanas no-WS_CLIPCHILDREN se validan o invalidan recursivamente hasta que se encuentre una ventana WS_CLIPCHILDREN. Las siguientes banderas controlan qué ventanas resultan afectadas por RedrawWindow:
Bandera | Descripción |
---|---|
RDW_ALLCHILDREN | Incluye las ventanas hija, si existen, en la operación de repintado. |
RDW_NOCHILDREN | Excluye las ventanas hija, si existen, de la operación de repintado. |
Si la función tiene éxito, el valor de retorno es distinto de cero.
Si la función falla, el valor de retorno es cero. Para obtener información adicional sobre el error, llamar a GetLastError.
Cuando se usa RedrawWindow para invalidar parte de la ventana del escritorio, esa ventana no recibe un mensaje WM_PAINT. Para repintar el escritorio, la aplicación debe usar la bandera RDW_ERASE para generar un mensaje WM_ERASEBKGND.
© Junio de 2004, Salvador Pozo Coronado, salvador@conclase.net Generada en 0.94 segs