다음을 통해 공유


WM_SETREDRAW 메시지

창에 WM_SETREDRAW 메시지를 보내 해당 창의 변경 내용을 다시 그릴 수 있도록 하거나 해당 창의 변경 내용이 다시 그려지는 것을 방지합니다.

이 메시지를 보내려면 다음 매개 변수를 사용하여 SendMessage 함수를 호출합니다.

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

매개 변수

wParam

다시 그리기 상태입니다. 이 매개 변수가 TRUE이면 변경 후 콘텐츠를 다시 그릴 수 있습니다. 이 매개 변수가 FALSE이면 변경 후 콘텐츠를 다시 그릴 수 없습니다.

lParam

이 매개 변수는 사용되지 않습니다.

반환 값

애플리케이션이 이 메시지를 처리하는 경우 0을 반환해야 합니다.

설명

이 메시지는 애플리케이션이 목록 상자에 여러 항목을 추가해야 하는 경우에 유용할 수 있습니다. 애플리케이션 은 wParamFALSE로 설정된 상태에서 이 메시지를 호출하고, 항목을 추가한 다음, wParam 이 TRUE로 설정된 상태에서 메시지를 다시 호출할 수 있습니다. 마지막으로 애플리케이션에서 RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | 를 호출할 수 있습니다. RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN)를 사용하면 목록 상자가 다시 그려집니다.

참고

InvalidateRect 대신 지정된 플래그와 함께 RedrawWindow를 사용해야 합니다. 전자는 비클라이언트 영역이 있는 일부 컨트롤에 필요하거나 비클라이언트 영역(예: WS_THICKFRAME, WS_BORDER 또는 WS_EX_CLIENTEDGE)이 부여되는 창 스타일이 있기 때문입니다. 컨트롤에 비클라이언트 영역이 없는 경우 이러한 플래그가 있는 RedrawWindowInvalidateRect 만큼 무효화만 수행합니다.

WM_SETREDRAW 메시지를 DefWindowProc 함수에 전달하면 wParamFALSE로 설정된 경우 창에서 WS_VISIBLE 스타일이 제거됩니다. 창 콘텐츠는 화면에 계속 표시되지만 IsWindowVisible 함수는 이 상태의 창에서 호출되면 FALSE 를 반환합니다.

WM_SETREDRAW 메시지를 DefWindowProc 함수에 전달하면 wParamTRUE로 설정된 경우 설정되지 않은 경우 창에 WS_VISIBLE 스타일이 추가됩니다. 애플리케이션이 wParamTRUE로 설정된 WM_SETREDRAW 메시지를 숨겨진 창으로 보내면 창이 표시됩니다.

Windows 10 이상; Windows Server 2016 이상. 시스템은 창 프로시저가 WM_SETREDRAW 메시지를 DefWindowProc에 전달하는 창에서 SysSetRedraw라는 속성을 설정합니다. GetProp 함수를 사용하여 사용 가능한 경우 속성 값을 가져올 수 있습니다. 다시 그리기를 사용하지 않도록 설정하면 GetProp에서 0이 아닌 값을 반환합니다. GetProp 은 다시 그리기를 사용하도록 설정하거나 창 속성이 없을 때 0을 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
헤더
Winuser.h(Windows.h 포함)

추가 정보