Função RedrawWindow (winuser.h)

A função RedrawWindow atualiza o retângulo ou a região especificados na área de cliente de uma janela.

Sintaxe

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

Parâmetros

[in] hWnd

Um identificador para a janela a ser redesenhada. Se esse parâmetro for NULL, a janela da área de trabalho será atualizada.

[in] lprcUpdate

Um ponteiro para uma estrutura RECT que contém as coordenadas, em unidades de dispositivo, do retângulo de atualização. Esse parâmetro será ignorado se o parâmetro hrgnUpdate identificar uma região.

[in] hrgnUpdate

Um identificador para a região de atualização. Se os parâmetros hrgnUpdate e lprcUpdate forem NULL, toda a área do cliente será adicionada à região de atualização.

[in] flags

Um ou mais sinalizadores de redesenho. Esse parâmetro pode ser usado para invalidar ou validar uma janela, controlar o repositório e controlar quais janelas são afetadas pelo RedrawWindow.

Os sinalizadores a seguir são usados para invalidar a janela.

Sinalizador (invalidação) Descrição
RDW_ERASE
Faz com que a janela receba uma mensagem WM_ERASEBKGND quando a janela é repintada. O sinalizador RDW_INVALIDATE também deve ser especificado; caso contrário, RDW_ERASE não terá efeito.
RDW_FRAME
Faz com que qualquer parte da área não cliente da janela que cruze a região de atualização receba uma mensagem WM_NCPAINT . O sinalizador RDW_INVALIDATE também deve ser especificado; caso contrário, RDW_FRAME não terá efeito. A mensagem WM_NCPAINT normalmente não é enviada durante a execução de RedrawWindow , a menos que RDW_UPDATENOW ou RDW_ERASENOW seja especificado.
RDW_INTERNALPAINT
Faz com que uma mensagem WM_PAINT seja postada na janela, independentemente de qualquer parte da janela ser inválida.
RDW_INVALIDATE
Invalida lprcUpdate ou hrgnUpdate (apenas um pode ser não NULL). Se ambos forem NULL, a janela inteira será invalidada.
 

Os sinalizadores a seguir são usados para validar a janela.

Sinalizador (validação) Descrição
RDW_NOERASE
Suprime todas as mensagens de WM_ERASEBKGND pendentes.
RDW_NOFRAME
Suprime todas as mensagens de WM_NCPAINT pendentes. Esse sinalizador deve ser usado com RDW_VALIDATE e normalmente é usado com RDW_NOCHILDREN. RDW_NOFRAME deve ser usado com cuidado, pois pode fazer com que partes de uma janela sejam pintadas incorretamente.
RDW_NOINTERNALPAINT
Suprime todas as mensagens de WM_PAINT internas pendentes. Esse sinalizador não afeta WM_PAINT mensagens resultantes de uma área de atualização não NULL .
RDW_VALIDATE
Valida lprcUpdate ou hrgnUpdate (apenas um pode ser não NULL). Se ambos forem NULL, a janela inteira será validada. Esse sinalizador não afeta mensagens de WM_PAINT internas.
 

O controle de sinalizadores a seguir quando a repintura ocorre. RedrawWindow não será repintado, a menos que um desses sinalizadores seja especificado.

Sinalizador Descrição
RDW_ERASENOW
Faz com que as janelas afetadas (conforme especificado pelos sinalizadores RDW_ALLCHILDREN e RDW_NOCHILDREN) recebam mensagens WM_NCPAINT e WM_ERASEBKGND , se necessário, antes que a função retorne. WM_PAINT mensagens são recebidas no horário comum.
RDW_UPDATENOW
Faz com que as janelas afetadas (conforme especificado pelos sinalizadores RDW_ALLCHILDREN e RDW_NOCHILDREN) recebam mensagens WM_NCPAINT, WM_ERASEBKGND e WM_PAINT , se necessário, antes que a função retorne.
 

Por padrão, as janelas afetadas por RedrawWindow dependem se a janela especificada tem o estilo WS_CLIPCHILDREN. Janelas filho que não são o estilo WS_CLIPCHILDREN não são afetadas; janelas não WS_CLIPCHILDREN são validadas recursivamente ou invalidadas até que uma janela de WS_CLIPCHILDREN seja encontrada. Os sinalizadores a seguir controlam quais janelas são afetadas pela função RedrawWindow .

Sinalizador Descrição
RDW_ALLCHILDREN
Inclui janelas filho, se houver, na operação de redesenho.
RDW_NOCHILDREN
Inclui janelas filho, se houver, na operação de redesenho.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero.

Comentários

Quando RedrawWindow é usado para invalidar parte da janela da área de trabalho, a janela da área de trabalho não recebe uma mensagem WM_PAINT . Para repintar a área de trabalho, um aplicativo usa o sinalizador RDW_ERASE para gerar uma mensagem WM_ERASEBKGND .

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-draw-l1-1-0 (introduzido no Windows 8)

Confira também

Getupdaterect

GetUpdateRgn

Invalidaterect

InvalidateRgn

Funções de pintura e desenho

Visão geral de pintura e desenho

RECT

Updatewindow