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

如果应用程序处理此消息,它应返回零。

示例

/******************************************************************
*                                                                 *
*  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 消息而为子窗口调用 SetScrollPosMoveWindow 函数,则 bRedraw 或 bRepaint 参数应为非零,以使窗口重新绘制。

尽管窗口的宽度和高度是 32 位值,但 lParam 参数仅包含每个窗口的低序 16 位。

DefWindowProc 函数在处理 WM_WINDOWPOSCHANGED 消息时会发送 WM_SIZE 和 WM_MOVE 消息。 如果应用程序在不调用 DefWindowProc 的情况下处理 WM_WINDOWPOSCHANGED 消息,则不会发送 WM_SIZE 和 WM_MOVE 消息。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winuser.h(包括 Windows.h)

另请参阅

引用

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Conceptual

Windows

其他资源

SetScrollPos