Функция WM_SIZE

 ↑  ←  Описание функции


WM_SIZE

Сообщение выполняется при изменении размеров окна.

Параметры

Указанные параметры передаются системой.
$wParam Способ, которым окно было изменено от 0 до 4 (мышкой или максимизация)
0 - Изменено мышкой
1 - Свёрнуто
2 - Развёрнуто на весь экран
$lParam Двойное слово содержит размеры клиентской области окна:
    младшее слово = ширина клиентской области окна
    старшее слово = высота клиентской области окна

Примечания

Смотрите функцию GUIRegisterMsg.

См. также

WM_SIZING

Пример

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $k = 0
$Gui = GUICreate("WM_SIZE", 370, 140, -1, -1, $WS_OVERLAPPEDWINDOW)
GUICtrlCreateLabel('Функция WM_SIZE выполняется при изменении размеров окна. Можно сделать особую установку положения и размера некоторых элементов интерфейса в момент изменения размеров окна', 5, 5, 360, 130)

GUISetState()

GUIRegisterMsg($WM_SIZE, "WM_SIZE")

Do
Until GUIGetMsg() = -3

Func WM_SIZE($hWnd, $Msg, $wParam, $lParam)
    #forceref $Msg, $wParam
    Local $w, $h
    ; Размеры клиентской области окна.
    $w = BitAND($lParam, 0xFFFF) ; _WinAPI_LoWord
    $h = BitShift($lParam, 16) ; _WinAPI_HiWord

    $k += 1
    WinSetTitle($Gui, '', 'Вызов ' & $k & ' раз, w=' & $w & ', h=' & $h)

    Return $GUI_RUNDEFMSG
EndFunc