WM_SETREDRAW mensagem

Você envia a mensagem WM_SETREDRAW para uma janela para permitir que as alterações nessa janela sejam redesenhadas ou para impedir que as alterações nessa janela sejam redesenhadas.

Para enviar essa mensagem, chame a função SendMessage com os parâmetros a seguir.

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

Parâmetros

wParam

O estado de redesenho. Se esse parâmetro for TRUE, o conteúdo poderá ser redesenhado após uma alteração. Se esse parâmetro for FALSE, o conteúdo não poderá ser redesenhado após uma alteração.

lParam

Esse parâmetro não é usado.

Valor retornado

Seu aplicativo deverá retornar 0 se processar essa mensagem.

Comentários

Essa mensagem poderá ser útil se o aplicativo precisar adicionar vários itens a uma caixa de listagem. Seu aplicativo pode chamar essa mensagem com wParam definido como FALSE, adicionar os itens e, em seguida, chamar a mensagem novamente com wParam definido como TRUE. Por fim, seu aplicativo pode chamar RedrawWindow(hWnd, NULL, NULL RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN) para fazer com que a caixa de listagem seja repintada.

Observação

Você deve usar RedrawWindow com os sinalizadores especificados, em vez de InvalidateRect, porque o primeiro é necessário para alguns controles que têm área não cliente própria ou têm estilos de janela que fazem com que eles recebam uma área não cliente (como WS_THICKFRAME, WS_BORDER ou WS_EX_CLIENTEDGE). Se o controle não tiver uma área não cliente, RedrawWindow com esses sinalizadores fará apenas a invalidação que InvalidateRect faria.

Passar uma mensagem de WM_SETREDRAW para a função DefWindowProc remove o estilo WS_VISIBLE da janela quando wParam é definido como FALSE. Embora o conteúdo da janela permaneça visível na tela, a função IsWindowVisible retorna FALSE quando chamada em uma janela nesse estado.

Passar uma mensagem de WM_SETREDRAW para a função DefWindowProc adiciona o estilo WS_VISIBLE à janela, se não definido, quando wParam é definido como TRUE. Se o aplicativo enviar a mensagem WM_SETREDRAW com wParam definido como TRUE para uma janela oculta, a janela ficará visível.

Windows 10 e posterior; Windows Server 2016 e posteriores. O sistema define uma propriedade chamada SysSetRedraw em uma janela cujo procedimento de janela passa WM_SETREDRAW mensagens para DefWindowProc. Você pode usar a função GetProp para obter o valor da propriedade quando ela estiver disponível. GetProp retorna um valor diferente de zero quando redraw é desabilitado. GetProp retornará zero quando redraw estiver habilitado ou quando a propriedade de janela não existir.

Requisitos

Requisito Valor
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]
Cabeçalho
Winuser.h (inclua Windows.h)

Confira também