WM_SIZE 메시지
크기가 변경된 후 창으로 전송됩니다.
창은 WindowProc 함수를 통해 이 메시지를 받습니다.
#define WM_SIZE 0x0005
-
wParam
-
요청된 크기 조정의 형식입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 의미 - SIZE_MAXHIDE
- 4
다른 창이 최대화되면 메시지가 모든 팝업 창으로 전송됩니다. - SIZE_MAXIMIZED
- 2
창이 최대화되었습니다. - SIZE_MAXSHOW
- 3
다른 창이 이전 크기로 복원되면 메시지가 모든 팝업 창으로 전송됩니다. - SIZE_MINIMIZED
- 1
창이 최소화되었습니다. - SIZE_RESTORED
- 0
창의 크기가 조정되었지만 SIZE_MINIMIZED 값이나 SIZE_MAXIMIZED 값은 적용되지 않습니다. -
lParam
-
lParam의 하위 단어는 클라이언트 영역의 새 너비를 지정합니다.
lParam의 상위 단어는 클라이언트 영역의 새 높이를 지정합니다.
형식: LRESULT
애플리케이션이 이 메시지를 처리하는 경우 0을 반환해야 합니다.
/******************************************************************
* *
* SimpleText::OnResize *
* *
* If the application receives a WM_SIZE message, this method *
* resize the render target appropriately. *
* *
******************************************************************/
void SimpleText::OnResize(UINT width, UINT height)
{
if (pRT_)
{
D2D1_SIZE_U size;
size.width = width;
size.height = height;
pRT_->Resize(size);
}
}
LRESULT CALLBACK SimpleText::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
SimpleText *pSimpleText = reinterpret_cast<SimpleText *>(
::GetWindowLongPtr(hwnd, GWLP_USERDATA));
if (pSimpleText)
{
switch(message)
{
case WM_SIZE:
{
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
pSimpleText->OnResize(width, height);
}
return 0;
// ...
GitHub의 Windows 클래식 샘플 예제입니다.
WM_SIZE 메시지의 결과로 자식 창에 대해 SetScrollPos 또는 MoveWindow 함수가 호출되면 bRedraw 또는 bRepaint 매개 변수가 0이 아니어야 창이 다시 그려집니다.
창의 너비와 높이가 32비트 값 이지만 lParam 매개 변수에는 각각 낮은 순서의 16비트만 포함됩니다.
DefWindowProc 함수는 WM_WINDOWPOSCHANGED 메시지를 처리할 때 WM_SIZE 및 WM_MOVE 메시지를 보냅니다. 애플리케이션이 DefWindowProc를 호출하지 않고 WM_WINDOWPOSCHANGED 메시지를 처리하는 경우 WM_SIZE 및 WM_MOVE 메시지가 전송되지 않습니다.
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|
-
참조
-
개념
-
기타 리소스