Bagikan melalui


pesan WM_SIZE

Dikirim ke jendela setelah ukurannya berubah.

Jendela menerima pesan ini melalui fungsi WindowProc-nya.

#define WM_SIZE                         0x0005

Parameter

wParam

Jenis mengubah ukuran yang diminta. Parameter ini bisa menjadi salah satu nilai berikut.

Value Makna
SIZE_MAXHIDE
4
Pesan dikirim ke semua jendela pop-up ketika beberapa jendela lain dimaksimalkan.
SIZE_MAXIMIZED
2
Jendela telah dimaksimalkan.
SIZE_MAXSHOW
3
Pesan dikirim ke semua jendela pop-up ketika beberapa jendela lain telah dipulihkan ke ukuran sebelumnya.
SIZE_MINIMIZED
1
Jendela telah diminimalkan.
SIZE_RESTORED
0
Jendela telah diubah ukurannya , tetapi tidak berlaku nilai SIZE_MINIMIZED atau SIZE_MAXIMIZED .

 

lParam

Kata berurutan rendah dari lParam menentukan lebar baru area klien.

Kata urutan tinggi lParam menentukan tinggi baru area klien.

Nilai hasil

Jenis: LRESULT

Jika aplikasi memproses pesan ini, aplikasi harus mengembalikan nol.

Contoh

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

// ...

Contoh dari sampel klasik Windows di GitHub.

Keterangan

Jika fungsi SetScrollPos atau MoveWindow dipanggil untuk jendela anak sebagai akibat dari pesan WM_SIZE, parameter bRedraw atau bRepaint harus nonzero untuk menyebabkan jendela dicat ulang.

Meskipun lebar dan tinggi jendela adalah nilai 32-bit, parameter lParam hanya berisi masing-masing 16 bit berurutan rendah.

Fungsi DefWindowProc mengirim pesan WM_SIZE dan WM_MOVE saat memproses pesan WM_WINDOWPOSCHANGED. Pesan WM_SIZE dan WM_MOVE tidak dikirim jika aplikasi menangani pesan WM_WINDOWPOSCHANGED tanpa memanggil DefWindowProc.

Persyaratan

Persyaratan Value
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Winuser.h (termasuk Windows.h)

Baca juga

Referensi

KATA SANDI

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Konseptual

Windows

Sumber Daya Lainnya

SetScrollPos