mensagem WM_SIZE

Enviado para uma janela depois que seu tamanho for alterado.

Uma janela recebe essa mensagem por meio da sua função WindowProc.

#define WM_SIZE                         0x0005

Parâmetros

wParam

O tipo de redimensionamento solicitado. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
SIZE_MAXHIDE
4
A mensagem é enviada para todas as janelas pop-up quando alguma outra janela é maximizada.
SIZE_MAXIMIZED
2
A janela foi maximizada.
SIZE_MAXSHOW
3
A mensagem é enviada para todas as janelas pop-up quando alguma outra janela foi restaurada para seu tamanho anterior.
SIZE_MINIMIZED
1
A janela foi minimizada.
SIZE_RESTORED
0
A janela foi redimensionada, mas nem o valor SIZE_MINIMIZED nem SIZE_MAXIMIZED se aplica.

 

lParam

A palavra de baixa ordem de lParam especifica a nova largura da área do cliente.

A palavra de alta ordem de lParam especifica a nova altura da área do cliente.

Valor retornado

Tipo: LRESULT

Se um aplicativo processar essa mensagem, ela deverá retornar zero.

Exemplo

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

// ...

Exemplo das Amostras do Windows Classic no GitHub.

Comentários

Se a função SetScrollPos ou MoveWindow for chamada para uma janela filho como resultado da mensagem WM_SIZE, o parâmetro bRedraw ou bRepaint deverá não ser zero para fazer com que a janela seja repintada.

Embora a largura e a altura de uma janela sejam valores de 32 bits, o parâmetro lParam contém apenas os 16 bits de ordem inferior de cada um.

A função DefWindowProc envia as mensagens WM_SIZE e WM_MOVE quando processa a mensagem WM_WINDOWPOSCHANGED. As mensagens WM_SIZE e WM_MOVE não serão enviadas se um aplicativo manipular a mensagem WM_WINDOWPOSCHANGED sem chamar DefWindowProc.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos para desktop]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclui Windows.h)

Confira também

Referência

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Conceitual

Windows

Outros recursos

SetScrollPos