mensaje de WM_SIZE

Se envía a una ventana después de cambiar su tamaño.

Una ventana recibe este mensaje mediante la función WindowProc.

#define WM_SIZE                         0x0005

Parámetros

wParam

Tipo de cambio de tamaño solicitado. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
SIZE_MAXHIDE
4
El mensaje se envía a todas las ventanas emergentes cuando se maximiza alguna otra ventana.
SIZE_MAXIMIZED
2
La ventana se ha maximizado.
SIZE_MAXSHOW
3
El mensaje se envía a todas las ventanas emergentes cuando se ha restaurado alguna otra ventana a su tamaño anterior.
SIZE_MINIMIZED
1
La ventana se ha minimizado.
SIZE_RESTORED
0
Se ha cambiado el tamaño de la ventana, pero no se aplica ni el SIZE_MINIMIZED ni el valor SIZE_MAXIMIZED.

 

lParam

La palabra de orden bajo de lParam especifica el nuevo ancho del área de cliente.

La palabra de orden superior de lParam especifica el nuevo alto del área de cliente.

Valor devuelto

Tipo: LRESULT

Si la aplicación procesa este mensaje, debe devolver cero.

Ejemplo

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

// ...

Ejemplo de ejemplos clásicos de Windows en GitHub.

Comentarios

Si se llama a la función SetScrollPos o MoveWindow para una ventana secundaria como resultado del mensaje de WM_SIZE, el parámetro bRedraw o bRepaint debe ser distinto de cero para que la ventana se vuelva a dibujar.

Aunque el ancho y el alto de una ventana son valores de 32 bits, el parámetro lParam contiene solo los 16 bits de orden bajo de cada uno.

La función DefWindowProc envía los mensajes WM_SIZE y WM_MOVE cuando procesa el mensaje de WM_WINDOWPOSCHANGED. Los mensajes WM_SIZE y WM_MOVE no se envían si una aplicación controla el mensaje de WM_WINDOWPOSCHANGED sin llamar a DefWindowProc.

Requisitos

Requisito Valor
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winuser.h (incluya Windows.h)

Consulte también

Referencia

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Conceptual

Windows

Otros recursos

SetScrollPos