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
업데이트 지역에 대한 핸들입니다. hrgnUpdate 및 lprcUpdate 매개 변수가 모두 NULL이면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
[in] flags
하나 이상의 다시 그리기 플래그입니다. 이 매개 변수를 사용하여 창을 무효화하거나 유효성을 검사하고, 다시 칠을 제어하고, RedrawWindow의 영향을 받는 창을 제어할 수 있습니다.
다음 플래그는 창을 무효화하는 데 사용됩니다.
플래그(무효화) | 설명 |
---|---|
|
창이 다시 칠해지면 창이 WM_ERASEBKGND 메시지를 받도록 합니다. RDW_INVALIDATE 플래그도 지정해야 합니다. 그렇지 않으면 RDW_ERASE 효과가 없습니다. |
|
업데이트 영역과 교차하는 창의 비클라이언트 영역 일부가 WM_NCPAINT 메시지를 받도록 합니다. RDW_INVALIDATE 플래그도 지정해야 합니다. 그렇지 않으면 RDW_FRAME 효과가 없습니다. WM_NCPAINT 메시지는 일반적으로 RDW_UPDATENOW 또는 RDW_ERASENOW 지정하지 않는 한 RedrawWindow를 실행하는 동안 전송되지 않습니다. |
|
창의 일부가 유효하지 않은지 여부에 관계없이 WM_PAINT 메시지가 창에 게시되도록 합니다. |
|
lprcUpdate 또는 hrgnUpdate를 무효화합니다(하나만 NULL이 아닐 수 있음). 둘 다 NULL이면 전체 창이 무효화됩니다. |
다음 플래그는 창의 유효성을 검사하는 데 사용됩니다.
플래그(유효성 검사) | 설명 |
---|---|
|
보류 중인 WM_ERASEBKGND 메시지를 표시하지 않습니다. |
|
보류 중인 WM_NCPAINT 메시지를 표시하지 않습니다. 이 플래그는 RDW_VALIDATE 사용해야 하며 일반적으로 RDW_NOCHILDREN 함께 사용됩니다. RDW_NOFRAME 창의 일부가 부적절하게 그려질 수 있으므로 주의하여 사용해야 합니다. |
|
보류 중인 내부 WM_PAINT 메시지를 표시하지 않습니다. 이 플래그는 NULL이 아닌 업데이트 영역에서 발생하는 WM_PAINT 메시지에 영향을 주지 않습니다. |
|
lprcUpdate 또는 hrgnUpdate의 유효성을 검사합니다(하나만 NULL이 아닌 것일 수 있음). 둘 다 NULL이면 전체 창의 유효성이 검사됩니다. 이 플래그는 내부 WM_PAINT 메시지에 영향을 주지 않습니다. |
다음 플래그는 다시 칠이 발생하는 시기를 제어합니다. 이러한 플래그 중 하나를 지정하지 않으면 RedrawWindow가 다시 그려지지 않습니다.
플래그 | 설명 |
---|---|
|
함수가 반환되기 전에 영향을 받는 창(RDW_ALLCHILDREN 및 RDW_NOCHILDREN 플래그로 지정됨)이 WM_NCPAINT 받고 필요한 경우 WM_ERASEBKGND 메시지를 받도록 합니다. WM_PAINT 메시지는 일반 시간에 수신됩니다. |
|
함수가 반환되기 전에 영향을 받는 창(RDW_ALLCHILDREN 및 RDW_NOCHILDREN 플래그로 지정됨)이 필요한 경우 WM_NCPAINT, WM_ERASEBKGND 및 WM_PAINT 메시지를 받도록 합니다. |
기본적으로 RedrawWindow 의 영향을 받는 창은 지정된 창에 WS_CLIPCHILDREN 스타일이 있는지 여부에 따라 달라집니다. WS_CLIPCHILDREN 스타일이 아닌 자식 창은 영향을 받지 않습니다. 비 WS_CLIPCHILDREN 창은 WS_CLIPCHILDREN 창이 발생할 때까지 재귀적으로 유효성이 검사되거나 무효화됩니다. 다음 플래그는 RedrawWindow 함수의 영향을 받는 창을 제어합니다.
플래그 | 설명 |
---|---|
|
다시 그리기 작업에 자식 창(있는 경우)을 포함합니다. |
|
자식 창(있는 경우)을 다시 그리는 작업에서 제외합니다. |
반환 값
함수가 성공하면 반환 값이 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에서 도입) |