Функция WM_MOVING

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


WM_MOVING

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

Параметры

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

Примечания

В отличии от WM_MOVE функция WM_MOVING выполняется при отпуске окна.
Смотрите функцию GUIRegisterMsg.

См. также

WM_MOVE

Пример

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; Global Const $WM_MOVING = 0x0216 ; в AutoIt3 v3.3.6.1 эта константа не определена
Global $k = 0
$Gui = GUICreate("WM_MOVING", 390, 180, -1, -1, $WS_OVERLAPPEDWINDOW)
GUICtrlCreateLabel('Функция WM_MOVING выполняется при перемещения окна. Отличается от WM_MOVE тем, что выполняется при отпуске окна.', 5, 5, 380, 34)
$condition = GUICtrlCreateLabel('', 10, 40, 380, 140)

GUISetState()

GUIRegisterMsg($WM_MOVING, "WM_MOVING")

Do
Until GUIGetMsg() = -3

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

    $k += 1
    GUICtrlSetData($condition, _
        'Левая.....' & @TAB & $left & @CRLF & _
        'Верхняя..' & @TAB & $top & @CRLF & _
        'Правая...' & @TAB & $Right & @CRLF & _
        'Нижняя..' & @TAB & $bottom)
   
    WinSetTitle($Gui, '', 'Вызов ' & $k & ' раз')

    Return $GUI_RUNDEFMSG
EndFunc