WM PAINT 메시지 없이 그리기 _

애플리케이션은 WM _ PAINT 메시지가 처리되는 동안 대부분의 그리기 작업을 수행하지만, WM _ PAINT 메시지에 의존하지 않고 애플리케이션이 창에서 직접 그리는 것이 더 효율적일 수 있습니다. 텍스트를 선택하고 개체를 끌거나 크기를 조정하는 경우와 같이 사용자에게 즉각적인 피드백이 필요한 경우에 유용할 수 있습니다. 이러한 경우 애플리케이션은 일반적으로 키보드 또는 마우스 메시지를 처리하는 동안 그립니다.

WM _ PAINT 메시지를 사용하지 않고 창을 그리기 위해 애플리케이션은 GetDC 또는 GetDCEx 함수를 사용하여 창에 대한 디스플레이 디바이스 컨텍스트를 검색합니다. 디스플레이 디바이스 컨텍스트를 사용하면 애플리케이션이 창에 그려지고 다른 창에 침입하지 않도록 방지할 수 있습니다. 애플리케이션 그리기가 완료되면 ReleaseDC 함수를 호출하여 다른 애플리케이션에서 사용할 디스플레이 디바이스 컨텍스트를 해제합니다.

WM _ PAINT 메시지를 사용하지 않고 그리는 경우 애플리케이션은 일반적으로 창을 무효화하지 않습니다. 대신 창을 쉽게 복원하고 그리기를 제거할 수 있는 방식으로 그립니다. 예를 들어 사용자가 텍스트 또는 개체를 선택하면 애플리케이션은 일반적으로 창에 이미 있는 항목을 반전하여 선택을 그립니다. 애플리케이션 선택 영역을 제거 하 고 단순히 다시 반전 하 여 창의 원래 콘텐츠를 복원할 수 있습니다.

애플리케이션은 창에 대한 변경 내용을 신중하게 관리해야 합니다. 특히 애플리케이션에서 선택 항목을 그리고 중간 WM _ PAINT 메시지가 발생하는 경우 애플리케이션은 메시지 중에 수행된 그리기에서 선택 영역이 손상되지 않도록 해야 합니다. 이를 방지하기 위해 많은 애플리케이션에서 선택 항목을 제거하고, 일반적인 그리기 작업을 수행하고, 그리기 완료 시 선택 영역을 복원합니다.