RedrawWindow 함수(winuser.h)

RedrawWindow 함수는 창의 클라이언트 영역에서 지정된 사각형 또는 영역을 업데이트합니다.

구문

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

매개 변수

[in] hWnd

다시 그릴 창에 대한 핸들입니다. 이 매개 변수가 NULL이면 바탕 화면 창이 업데이트됩니다.

[in] lprcUpdate

업데이트 사각형의 좌표(디바이스 단위)를 포함하는 RECT 구조체에 대한 포인터입니다. hrgnUpdate 매개 변수가 지역을 식별하는 경우 이 매개 변수는 무시됩니다.

[in] hrgnUpdate

업데이트 지역에 대한 핸들입니다. hrgnUpdatelprcUpdate 매개 변수가 모두 NULL이면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.

[in] flags

하나 이상의 다시 그리기 플래그입니다. 이 매개 변수를 사용하여 창을 무효화하거나 유효성을 검사하고, 다시 칠을 제어하고, RedrawWindow의 영향을 받는 창을 제어할 수 있습니다.

다음 플래그는 창을 무효화하는 데 사용됩니다.

플래그(무효화) 설명
RDW_ERASE
창이 다시 칠해지면 창이 WM_ERASEBKGND 메시지를 받도록 합니다. RDW_INVALIDATE 플래그도 지정해야 합니다. 그렇지 않으면 RDW_ERASE 효과가 없습니다.
RDW_FRAME
업데이트 영역과 교차하는 창의 비클라이언트 영역 일부가 WM_NCPAINT 메시지를 받도록 합니다. RDW_INVALIDATE 플래그도 지정해야 합니다. 그렇지 않으면 RDW_FRAME 효과가 없습니다. WM_NCPAINT 메시지는 일반적으로 RDW_UPDATENOW 또는 RDW_ERASENOW 지정하지 않는 한 RedrawWindow를 실행하는 동안 전송되지 않습니다.
RDW_INTERNALPAINT
의 일부가 유효하지 않은지 여부에 관계없이 WM_PAINT 메시지가 창에 게시되도록 합니다.
RDW_INVALIDATE
lprcUpdate 또는 hrgnUpdate를 무효화합니다(하나만 NULL이 아닐 수 있음). 둘 다 NULL이면 전체 창이 무효화됩니다.
 

다음 플래그는 창의 유효성을 검사하는 데 사용됩니다.

플래그(유효성 검사) 설명
RDW_NOERASE
보류 중인 WM_ERASEBKGND 메시지를 표시하지 않습니다.
RDW_NOFRAME
보류 중인 WM_NCPAINT 메시지를 표시하지 않습니다. 이 플래그는 RDW_VALIDATE 사용해야 하며 일반적으로 RDW_NOCHILDREN 함께 사용됩니다. RDW_NOFRAME 창의 일부가 부적절하게 그려질 수 있으므로 주의하여 사용해야 합니다.
RDW_NOINTERNALPAINT
보류 중인 내부 WM_PAINT 메시지를 표시하지 않습니다. 이 플래그는 NULL이 아닌 업데이트 영역에서 발생하는 WM_PAINT 메시지에 영향을 주지 않습니다.
RDW_VALIDATE
lprcUpdate 또는 hrgnUpdate의 유효성을 검사합니다(하나만 NULL이 아닌 것일 수 있음). 둘 다 NULL이면 전체 창의 유효성이 검사됩니다. 이 플래그는 내부 WM_PAINT 메시지에 영향을 주지 않습니다.
 

다음 플래그는 다시 칠이 발생하는 시기를 제어합니다. 이러한 플래그 중 하나를 지정하지 않으면 RedrawWindow가 다시 그려지지 않습니다.

플래그 설명
RDW_ERASENOW
함수가 반환되기 전에 영향을 받는 창(RDW_ALLCHILDREN 및 RDW_NOCHILDREN 플래그로 지정됨)이 WM_NCPAINT 받고 필요한 경우 WM_ERASEBKGND 메시지를 받도록 합니다. WM_PAINT 메시지는 일반 시간에 수신됩니다.
RDW_UPDATENOW
함수가 반환되기 전에 영향을 받는 창(RDW_ALLCHILDREN 및 RDW_NOCHILDREN 플래그로 지정됨)이 필요한 경우 WM_NCPAINT, WM_ERASEBKGNDWM_PAINT 메시지를 받도록 합니다.
 

기본적으로 RedrawWindow 의 영향을 받는 창은 지정된 창에 WS_CLIPCHILDREN 스타일이 있는지 여부에 따라 달라집니다. WS_CLIPCHILDREN 스타일이 아닌 자식 창은 영향을 받지 않습니다. 비 WS_CLIPCHILDREN 창은 WS_CLIPCHILDREN 창이 발생할 때까지 재귀적으로 유효성이 검사되거나 무효화됩니다. 다음 플래그는 RedrawWindow 함수의 영향을 받는 창을 제어합니다.

플래그 설명
RDW_ALLCHILDREN
다시 그리기 작업에 자식 창(있는 경우)을 포함합니다.
RDW_NOCHILDREN
자식 창(있는 경우)을 다시 그리는 작업에서 제외합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다.

설명

RedrawWindow를 사용하여 바탕 화면 창의 일부를 무효화하면 바탕 화면 창에 WM_PAINT 메시지가 표시되지 않습니다. 데스크톱을 다시 그리기 위해 애플리케이션은 RDW_ERASE 플래그를 사용하여 WM_ERASEBKGND 메시지를 생성합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-draw-l1-1-0(Windows 8에서 도입)

추가 정보

GetUpdateRect

GetUpdateRgn

InvalidateRect

InvalidateRgn

그리기 및 그리기 함수

그리기 및 그리기 개요

RECT

UpdateWindow