CWnd::RedrawWindow
Atualiza o retângulo ou região especificada no cliente da janela determinada área.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
);
Parâmetros
lpRectUpdate
Os pontos a RECT a estrutura contendo as coordenadas do retângulo de atualização. Esse parâmetro é ignorado se o prgnUpdate contém um identificador válido da região.prgnUpdate
Identifica a região de atualização. Se o prgnUpdate e lpRectUpdate são NULO, toda a área cliente é adicionada à região de atualização.flags
Os seguintes sinalizações são usados para invalidar a janela:RDW_ERASE faz com que a janela receber uma mensagem de WM_ERASEBKGND quando a janela é repintada. O sinalizador de RDW_INVALIDATE também deve ser especificado; se não RDW_ERASE não tem efeito.
RDW_FRAME causa qualquer parte da área de nonclient da janela que cruza a região de atualização para receber uma mensagem de WM_NCPAINT . O sinalizador de RDW_INVALIDATE também deve ser especificado; se não RDW_FRAME não tem efeito.
RDW_INTERNALPAINT causa uma mensagem de WM_PAINT a ser enviada para a janela independentemente da janela contém uma região inválido.
RDW_INVALIDATE invalida lpRectUpdate ou o prgnUpdate (somente um não pode ser NULO). Se ambos são NULO, a janela inteira é invalidada.
Os seguintes sinalizações são usados para validar a janela:
RDW_NOERASE suprime todas as mensagens pendentes de WM_ERASEBKGND .
RDW_NOFRAME suprime todas as mensagens pendentes de WM_NCPAINT . Este sinalizador deve ser usado com RDW_VALIDATE e é normalmente usado com RDW_NOCHILDREN. Esta opção deve ser usada com cuidado, porque pode impedir que partes de uma janela pintem corretamente.
RDW_NOINTERNALPAINT suprime todas as mensagens pendentes internas de WM_PAINT . Este sinalizador não afeta mensagens de WM_PAINT resultantes das áreas inválidos.
RDW_VALIDATE valida lpRectUpdate ou o prgnUpdate (somente um não pode ser NULO). Se ambos são NULO, a janela inteira é validada. Este sinalizador não afeta mensagens internas de WM_PAINT .
Os seguintes sinalizações redesenhar controle quando ocorre. A pintura não é executada pela função de RedrawWindow a menos que um de esses bits é especificado.
RDW_ERASENOW faz com que o windows afetadas (como especificado pelos sinalizadores de RDW_ALLCHILDREN e de RDW_NOCHILDREN ) WM_NCPAINT e recebem mensagens de WM_ERASEBKGND se necessário, antes que a função retorna. Mensagens deWM_PAINT são adiadas.
RDW_UPDATENOW faz com que o windows afetadas (como especificado pelos sinalizadores de RDW_ALLCHILDREN e de RDW_NOCHILDREN ) recebe WM_NCPAINT, WM_ERASEBKGND, e mensagens de WM_PAINT se necessário, antes da função retorna.
Por padrão, o windows afetadas pela função de RedrawWindow dependem se a janela especificada tem o estilo de WS_CLIPCHILDREN . As janelas filho do windows de WS_CLIPCHILDREN não são afetadas. Em o entanto, essas janelas que não são janelas de WS_CLIPCHILDREN recursivamente validadas são invalidadas ou até que uma janela de WS_CLIPCHILDREN seja encontrada. O seguinte controle de sinalizações que as janelas são afetados pela função de RedrawWindow :
RDW_ALLCHILDREN inclui janelas filho, se houver, a operação repintando.
ExcluiRDW_NOCHILDREN janelas filho, se houver, da operação repintando.
Valor de retorno
Diferente de zero se a janela foi redesenhada com êxito; se não 0.
Comentários
Quando a função de membro de RedrawWindow é usada para invalidar a parte da janela da área de trabalho, essa janela não recebe uma mensagem de WM_PAINT . Para redesenhar a área de trabalho, um aplicativo deve usar CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow, ou RedrawWindow
Requisitos
Cabeçalho: afxwin.h