Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

WM_SIZE message

Sent to a window after its size has changed.

A window receives this message through its WindowProc function.

#define WM_SIZE 0x0005

Parameters

wParam

The type of resizing requested. This parameter can be one of the following values.

Value Meaning
SIZE_MAXHIDE
4
Message is sent to all pop-up windows when some other window is maximized.
SIZE_MAXIMIZED
2
The window has been maximized.
SIZE_MAXSHOW
3
Message is sent to all pop-up windows when some other window has been restored to its former size.
SIZE_MINIMIZED
1
The window has been minimized.
SIZE_RESTORED
0
The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies.

lParam

The low-order word of lParam specifies the new width of the client area.

The high-order word of lParam specifies the new height of the client area.

Return value

Type: LRESULT

If an application processes this message, it should return zero.

Example

/******************************************************************
* *
* 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;

// ...

Example from Windows classic samples on GitHub.

Remarks

If the SetScrollPos or MoveWindow function is called for a child window as a result of the WM_SIZE message, the bRedraw or bRepaint parameter should be nonzero to cause the window to be repainted.

Although the width and height of a window are 32-bit values, the lParam parameter contains only the low-order 16 bits of each.

The DefWindowProc function sends the WM_SIZE and WM_MOVE messages when it processes the WM_WINDOWPOSCHANGED message. The WM_SIZE and WM_MOVE messages are not sent if an application handles the WM_WINDOWPOSCHANGED message without calling DefWindowProc.

Requirements

Requirement Value
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Winuser.h (include Windows.h)

See also

Reference

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Conceptual

Windows

Other Resources

SetScrollPos


Feedback

Was this page helpful?

Additional resources