반응형
윈도우즈에서는 하나의 프로세스가 다른 프로세스에 의해 화면이 가려지거나 최소화를 하게 될 경우 윈도우의 가려진 부분을 지우는 무효 영역이 발생된다. 가려진 부분을 복구할 경우 무효 영역에 의해 지워진 부분을 다시 그려줘야 하는데 이 때 WM_PAINT 메시지가 호출된다.
고의적으로 무효 영역을 호출하는 함수가 바로 InvalidateRect 함수이며 이 함수가 호출 될 때 위와 마찬가지로 WM_PAINT 메시지가 호출이 되며 지정한 영역의 화면이 다시 그려지게 된다. 함수의 원형은 이렇다.
BOOL WINAPI InvalidateRect(HWND hWnd, RECT *lpRect, BOOL bErase);
InvalidateRect 함수는 실행에 성공할 경우 0 이외의 값을 반환하며 실패할 경우 0을 반환한다.
첫 번째 인자는 무효 영역을 호출하고 싶은 윈도우 핸들을 지정해주면 된다. NULL일 경우 모든 윈도우를 무효화하지만 권장하지 않는다.
두 번째 인자는 해당 윈도우의 무효 영역을 호출하고 싶은 좌표 영역을 RECT 구조체에 저장해 포인터로 전달하면 된다. NULL일 경우 윈도우의 모든 영역을 처리한다.
세 번째 인자는 무효 영역에 그려진 화면을 지울 것인지 여부를 판단하는 진리값을 전달하면 된다. 이 값이 TRUE일 경우 BeginPaint 함수가 호출 될 때 배경을 지우고 다시 그린다. FALSE일 경우 배경을 지우지 않고 다시 그린다.
'관심 분야 > Windows API' 카테고리의 다른 글
[WinAPI] 키보드 입력 메시지 및 관련 파라미터 요약 (0) | 2022.10.09 |
---|---|
[WinAPI] WinAPI 기본 코드 (0) | 2022.10.07 |