1 (изменено: Next, 2013-10-11 15:41:54)

Тема: AHK: Отслеживание ресайзинга окна.

Есть скрипт работающий с окном. В момент изменения размера окна, некоторые функции, запускаемые по таймеру, работают некорректно.  Можно как-то отследить процесс ресайзинга окна, чтобы сразу выходить из подпрограммы таймера?  Отслеживание изменения размера окна через WinGetPos, конечно же, не подходит.

Может курсор как-то проверять? Или есть более простые и надёжные методы?

2

Re: AHK: Отслеживание ресайзинга окна.

Next, ознакомьтесь с этой темой, отредактируйте заголовок.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Отслеживание ресайзинга окна.

Ловить сообщение WM_SIZE, видимо. Обработчик для сообщений назначается функцией OnMessage.

4

Re: AHK: Отслеживание ресайзинга окна.

Есть скрипт работающий с окном.

Со своим окном?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Отслеживание ресайзинга окна.

Нет, с другим.

6 (изменено: serzh82saratov, 2013-10-11 21:44:15)

Re: AHK: Отслеживание ресайзинга окна.

Так можно получать события начала и конца перетаскивания или ресайза нужного окна:


SetWinEventHook(0x000A, 0x000B, 0, RegisterCallback("MyFunc", "F"),0,0,0)
Thwnd := WinExist("ahk_class Notepad")
return

MyFunc(hWinEventHook, event, hwnd) {
    Global
    If (hwnd = Thwnd)
    {
        If (event = 0x000A)
            ToolTip EVENT_SYSTEM_MOVESIZESTART
        Else If (event = 0x000B)
            ToolTip EVENT_SYSTEM_MOVESIZEEND
    }
}

SetWinEventHook(eventMin, eventMax, hmodWinEventProc, lpfnWinEventProc, idProcess, idThread, dwFlags)
{
   return DllCall("SetWinEventHook" , UInt, eventMin, UInt, eventMax
                                    , Ptr, hmodWinEventProc, Ptr, lpfnWinEventProc
                                    , UInt, idProcess, UInt, idThread
                                    , UInt, dwFlags, Ptr)
}

Для постоянного вызова во время действия можно использовать 

EVENT_OBJECT_LOCATIONCHANGE = 0x800B
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Отслеживание ресайзинга окна.

Спасибо. Пока ничего не понял, но попробую разобраться как это приспособить в виде проверки внутри подпрограммы таймера.