WM_SIZE消息

更改窗口大小后发送到窗口。

窗口通过其 WindowProc 函数接收此消息。

#define WM_SIZE                         0x0005

参数

wParam

请求的大小调整的类型。 此参数的取值可为下列值之一:

含义
SIZE_MAXHIDE
4
当其他一些窗口最大化时,消息将发送到所有弹出窗口。
SIZE_MAXIMIZED
2
窗口已最大化。
SIZE_MAXSHOW
3
当其他一些窗口还原到其以前的大小时,消息将发送到所有弹出窗口。
SIZE_MINIMIZED
1
窗口已最小化。
SIZE_RESTORED
0
窗口已调整大小,但 SIZE_MINIMIZEDSIZE_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_SIZEWM_MOVE消息。 如果应用程序在不调用 DefWindowProc 的情况下处理WM_WINDOWPOSCHANGED消息,则不会发送WM_SIZEWM_MOVE消息。

要求

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

另请参阅

引用

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

概念性

Windows

其他资源

SetScrollPos