WM_NCCALCSIZE 메시지

창의 클라이언트 영역의 크기와 위치를 계산해야 하는 경우 전송됩니다. 이 메시지를 처리하면 애플리케이션은 창의 크기 또는 위치가 변경되면 창의 클라이언트 영역 콘텐츠를 제어할 수 있습니다.

창은 WindowProc 함수를 통해 이 메시지를 받습니다.

#define WM_NCCALCSIZE                   0x0083

매개 변수

wParam

wParamTRUE이면 애플리케이션이 유효한 정보를 포함하는 클라이언트 영역의 일부를 나타내야 한다고 지정합니다. 시스템은 유효한 정보를 새 클라이언트 영역 내의 지정된 영역에 복사합니다.

wParamFALSE이면 애플리케이션이 클라이언트 영역의 유효한 부분을 나타낼 필요가 없습니다.

lParam

wParamTRUE이면 lParam은 애플리케이션이 클라이언트 사각형의 새 크기와 위치를 계산하는 데 사용할 수 있는 정보가 포함된 NCCALCSIZE_PARAMS 구조를 가리킵니다.

wParamFALSE이면 lParamRECT 구조를 가리킵니다. 항목에서 구조체에는 창에 대해 제안된 창 사각형이 포함됩니다. 종료할 때 구조체에는 해당 창 클라이언트 영역의 화면 좌표가 포함되어야 합니다.

반환 값

형식: LRESULT

wParam 매개 변수가 FALSE이면 애플리케이션은 0을 반환해야 합니다.

wParamTRUE이면 애플리케이션은 0 또는 다음 값의 조합을 반환해야 합니다.

wParamTRUE이고 애플리케이션이 0을 반환하면 이전 클라이언트 영역이 유지되고 새 클라이언트 영역의 왼쪽 위 모서리에 맞춰집니다.

반환 코드/값 설명
WVR_ALIGNTOP
0x0010
창의 클라이언트 영역이 유지되고 창의 새 위치 맨 위에 정렬되도록 지정합니다. 예를 들어 클라이언트 영역을 왼쪽 위 모서리에 맞추려면 WVR_ALIGNTOP 반환하고 값을 WVR_ALIGNLEFT .
WVR_ALIGNRIGHT
0x0080
창의 클라이언트 영역이 유지되고 창의 새 위치 오른쪽에 맞춰지도록 지정합니다. 예를 들어 클라이언트 영역을 오른쪽 아래 모서리에 맞추려면 WVR_ALIGNRIGHT 반환하고 값을 WVR_ALIGNBOTTOM.
WVR_ALIGNLEFT
0x0020
창의 클라이언트 영역이 유지되고 창의 새 위치 왼쪽에 맞춰지도록 지정합니다. 예를 들어 클라이언트 영역을 왼쪽 아래 모서리에 맞추려면 WVR_ALIGNLEFT 반환하고 값을 WVR_ALIGNBOTTOM .
WVR_ALIGNBOTTOM
0x0040
창의 클라이언트 영역을 보존하고 창의 새 위치 아래쪽에 맞추도록 지정합니다. 예를 들어 클라이언트 영역을 왼쪽 위 모서리에 맞추려면 WVR_ALIGNTOP 반환하고 값을 WVR_ALIGNLEFT .
WVR_HREDRAW
0x0100
WVR_VALIDRECTS 제외한 다른 값과 함께 사용하면 클라이언트 사각형의 크기가 가로로 변경될 경우 창이 완전히 다시 그려지게 됩니다. 이 값은 CS_HREDRAW 클래스 스타일과 비슷합니다.
WVR_VREDRAW
0x0200
WVR_VALIDRECTS 제외한 다른 값과 함께 사용하면 클라이언트 사각형의 크기가 세로로 변경되면 창이 완전히 다시 그려지게 됩니다. 이 값은 CS_VREDRAW 클래스 스타일과 유사합니다.
WVR_REDRAW
0x0300
이 값을 사용하면 전체 창이 다시 그려지게 됩니다. WVR_HREDRAW 값과 WVR_VREDRAW 값의 조합입니다.
WVR_VALIDRECTS
0x0400
이 값은 WM_NCCALCSIZE 반환될 때 NCCALCSIZE_PARAMS구조체rgrc[1] 및 rgrc[2] 멤버에 의해 지정된 사각형에 각각 유효한 대상 및 원본 영역 사각형이 포함됨을 나타냅니다. 시스템은 이러한 사각형을 결합하여 보존할 창의 영역을 계산합니다. 시스템은 원본 사각형 내에 있는 창 이미지의 일부를 복사하고 대상 사각형에 이미지를 클리핑합니다. 두 사각형은 모두 부모 상대 또는 화면 상대 좌표에 있습니다. 이 플래그는 다른 플래그와 결합할 수 없습니다.
이 반환 값을 사용하면 애플리케이션이 클라이언트 영역의 하위 집합을 가운데에 배치하거나 보존하는 등 보다 정교한 클라이언트 영역 보존 전략을 구현할 수 있습니다.

 

설명

CS_HREDRAW 또는 CS_VREDRAW 클래스 스타일이 지정되었는지 여부에 따라 창이 다시 그려질 수 있습니다. 이는 이전 표에 설명된 일반적인 클라이언트 사각형 계산 외에도 DefWindowProc 함수에서 이 메시지를 이전 버전과 호환되는 기본 처리입니다.

wParamTRUE이면 NCCALCSIZE_PARAMS 사각형을 처리하지 않고 0을 반환하면 클라이언트 영역의 크기가 창 프레임을 포함하여 창 크기로 조정됩니다. 그러면 창 프레임이 제거되고 창에서 항목이 캡션 클라이언트 영역만 표시됩니다.

Windows Vista부터 wParamTRUE 일 때 0을 반환하여 표준 프레임을 제거해도 DwmExtendFrameIntoClientArea 함수를 사용하여 클라이언트 영역으로 확장되는 프레임에는 영향을 주지 않습니다. 표준 프레임만 제거됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Winuser.h(Windows.h 포함)

추가 정보

참조

DefWindowProc

MoveWindow

SetWindowPos

NCCALCSIZE_PARAMS

개념

Windows

기타 리소스

RECT