창 업데이트 잠금
창 업데이트 잠금 창에서 그리기의 임시 일시 중단입니다. 시스템은 잠금을 사용하여 사용자가 창을 이동하거나 크기를 조정할 때마다 다른 창이 추적 사각형 위로 그리는 것을 방지합니다. 애플리케이션은 자신의 창에서 유사한 이동 또는 크기 조정 작업을 수행하는 경우 잠금을 사용하여 그리기를 방지할 수 있습니다.
애플리케이션은 LockWindowUpdate 함수를 사용하여 창 업데이트 잠금을 설정하거나 지우고 잠글 창을 지정합니다. 잠금은 지정된 창과 모든 자식 창에 적용됩니다. 잠금이 설정되면 GetDC 및 BeginPaint 함수는 표시되는 영역이 비어 있는 디스플레이 디바이스 컨텍스트를 반환합니다. 이 경우 애플리케이션은 창에서 계속 그릴 수 있지만 모든 출력이 잘립니다. 잠금은 애플리케이션이 LockWindowUpdate호출하고 창에 NULL 지정하여 잠금을 지울 때까지 유지됩니다. LockWindowUpdate 창의 표시 영역이 비워지도록 강제하지만, 함수는 지정된 창을 보이지 않게 하지 않으며 WS_VISIBLE 스타일 비트를 지우지 않습니다.
잠금이 설정되면 애플리케이션은 DCX_LOCKWINDOWUPDATE 값과 함께 GetDCEx 함수를 사용하여 잠긴 창에 그리는 디스플레이 디바이스 컨텍스트를 검색할 수 있습니다. 이렇게 하면 키보드 또는 마우스 메시지를 처리할 때 애플리케이션에서 추적 사각형을 그릴 수 있습니다. 시스템에서는 사용자가 창을 이동하고 크기를 조정하는 경우 이 메서드를 사용합니다. GetDCEx 디스플레이 디바이스 컨텍스트 캐시에서 디스플레이 디바이스 컨텍스트를 검색하므로 애플리케이션은 그리기 후 가능한 한 빨리 디바이스 컨텍스트를 해제해야 합니다.
창 업데이트 잠금이 설정되는 동안 시스템은 잠긴 각 창에 대해 누적된 경계 사각형을 만듭니다. 잠금이 지워지면 시스템에서 이 경계 사각형을 사용하여 창 및 해당 자식 창에 대한 업데이트 영역을 설정하여 최종 WM_PAINT 메시지를 강제로 적용합니다. 누적된 경계 사각형이 비어 있으면(즉, 잠금이 설정된 동안 드로잉이 발생하지 않은 경우) 업데이트 영역이 설정되지 않습니다.