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訊息而呼叫 SetScrollPos MoveWindow 函式做為子視窗,bRedrawbRepaint 參數應該是非零值,會導致重新繪製視窗。

雖然窗口的寬度和高度是32位值, 但 lParam 參數只包含每個低序16位。

DefWindowProc 函式會在處理WM_WINDOWPOSCHANGED訊息時傳送WM_SIZE和WM_MOVE訊息。 如果應用程式在不呼叫DefWindowProc的情況下處理WM_WINDOWPOSCHANGED訊息,則不會傳送WM_SIZEWM_MOVE訊息。

需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
頁首
Winuser.h (包括 Windows.h)

另請參閱

參考

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

概念

Windows

其他資源

SetScrollPos