Leggere in inglese

Condividi tramite


WM_SIZE messaggio

Inviato a una finestra dopo la modifica delle dimensioni.

Una finestra riceve questo messaggio tramite la relativa funzione WindowProc.

#define WM_SIZE                         0x0005

Parametri

wParam

Tipo di ridimensionamento richiesto. Questo parametro può avere uno dei valori seguenti.

Valore Significato
SIZE_MAXHIDE
4
Il messaggio viene inviato a tutte le finestre popup quando un'altra finestra è ingrandita.
SIZE_MAXIMIZED
2
La finestra è stata ingrandita.
SIZE_MAXSHOW
3
Il messaggio viene inviato a tutte le finestre popup quando alcune altre finestre sono state ripristinate alle dimensioni precedenti.
SIZE_MINIMIZED
1
La finestra è stata ridotta a icona.
SIZE_RESTORED
0
La finestra è stata ridimensionata, ma non viene applicato né il valore SIZE_MINIMIZEDSIZE_MAXIMIZED .

 

lParam

La parola in ordine basso di lParam specifica la nuova larghezza dell'area client.

La parola dell'ordine elevato di lParam specifica la nuova altezza dell'area client.

Valore restituito

Tipo: LRESULT

Se un'applicazione elabora questo messaggio, deve restituire zero.

Esempio

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

// ...

Esempio di esempi classici di Windows in GitHub.

Osservazioni:

Se la funzione SetScrollPos o MoveWindow viene chiamata per una finestra figlio come risultato del messaggio WM_SIZE, il parametro bRedraw o bRepaint deve essere diverso da zero per fare in modo che la finestra venga ricreata.

Anche se la larghezza e l'altezza di una finestra sono valori a 32 bit, il parametro lParam contiene solo i 16 bit di ogni finestra.

La funzione DefWindowProc invia i messaggi WM_SIZE e WM_MOVE quando elabora il messaggio di WM_WINDOWPOSCHANGED. I messaggi WM_SIZE e WM_MOVE non vengono inviati se un'applicazione gestisce il messaggio WM_WINDOWPOSCHANGED senza chiamare DefWindowProc.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winuser.h (include Windows.h)

Vedi anche

Riferimento

HIWORD

LOWORD

Movewindow

WM_WINDOWPOSCHANGED

Concettuale

Windows

Altre risorse

SetScrollPos