Message WM_SIZE

Envoyé à une fenêtre après que sa taille a été modifiée.

Une fenêtre reçoit ce message à travers sa fonction WindowProc.

#define WM_SIZE                         0x0005

Paramètres

wParam

Type de redimensionnement demandé. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
SIZE_MAXHIDE
4
Le message est envoyé à toutes les fenêtres contextuelles quand une autre fenêtre est agrandie.
SIZE_MAXIMIZED
2
La fenêtre a été agrandie.
SIZE_MAXSHOW
3
Le message est envoyé à toutes les fenêtres contextuelles quand une autre fenêtre a été restaurée à sa taille antérieure.
SIZE_MINIMIZED
1
La fenêtre a été réduite.
SIZE_RESTORED
0
La fenêtre a été redimensionnée, mais ni SIZE_MINIMIZED ni SIZE_MAXIMIZED ne s’applique.

 

lParam

Le mot d’ordre faible d’lParam spécifie la nouvelle largeur de la zone cliente.

Le mot d’ordre élevé d’lParam spécifie la nouvelle hauteur de la zone cliente.

Valeur retournée

Type : LRESULT

Si une application traite ce message, elle doit retourner à zéro.

Exemple

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

// ...

Exemple tiré des exemples classiques Windows sur GitHub.

Notes

Si la fonction SetScrollPos ou MoveWindow est appelée pour une fenêtre enfant suite au message WM_SIZE, le paramètre bRedraw ou bRepaint doit être différent de zéro pour que la fenêtre soit repeinte.

Bien que la largeur et la hauteur d’une fenêtre soient des valeurs 32 bits, le paramètre lParam contient uniquement les 16 bits d’ordre faible de chacune.

La fonction DefWindowProc envoie les messages WM_SIZE et WM_MOVE lorsqu’elle traite le message WM_WINDOWPOSCHANGED. Les messages WM_SIZE et WM_MOVE ne sont pas envoyés si une application gère le message WM_WINDOWPOSCHANGED sans appeler DefWindowProc.

Spécifications

Condition requise Value
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Winuser.h (y compris Windows.h)

Voir aussi

Référence

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Conceptuel

Windows

Autres ressources

SetScrollPos