Функция WM_WINDOWPOSCHANGED

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


WM_WINDOWPOSCHANGED

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

Параметры

Указанные параметры передаются системой.
$wParam -
$lParam Указатель на структуру, содержащую позицию и размер окна

Примечания

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

См. также

WM_WINDOWPOSCHANGING

Пример

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $k = 0
$Gui = GUICreate("WM_WINDOWPOSCHANGED", 380, 190, -1, -1, $WS_OVERLAPPEDWINDOW)
GUICtrlCreateLabel('Функция WM_WINDOWPOSCHANGED выполняется при перемещении или изменении размеров окна.', 5, 5, 380, 34)
$condition = GUICtrlCreateLabel('', 10, 40, 360, 135)

GUISetState()
GUIRegisterMsg($WM_WINDOWPOSCHANGED, "WM_WINDOWPOSCHANGED")

Do
Until GUIGetMsg() = -3

Func WM_WINDOWPOSCHANGED($hWnd, $Msg, $wParam, $lParam)
    ; получает координаты сторон окна
    Local $sRect = DllStructCreate("Int[6]", $lParam), _
        $ykazatel = DllStructGetData($sRect, 1, 1), _
        $chislo = DllStructGetData($sRect, 1, 2), _
        $left = DllStructGetData($sRect, 1, 3), _
        $top = DllStructGetData($sRect, 1, 4), _
        $WinSizeX = DllStructGetData($sRect, 1, 5), _
        $WinSizeY = DllStructGetData($sRect, 1, 6)

    $k += 1
    GUICtrlSetData($condition, 'Вызов функции ' & $k & ' раз' & @CRLF & _
        $ykazatel & ' - [1] число' & @CRLF & _
        $chislo & ' - [2] число' & @CRLF & _
        $left & ' - [3] координата левого края' & @CRLF & _
        $top & ' - [4] координата верхнего края' & @CRLF & _
        $WinSizeX & ' - [5] ширина окна' & @CRLF & _
        $WinSizeY & ' - [6] высота окна')
   
    WinSetTitle($Gui, '', 'Вызов ' & $k & ' раз, x=' & $WinSizeX & ', y=' & $WinSizeY)

    Return $GUI_RUNDEFMSG
EndFunc