Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Мы мучались с DllCallBack (чтобы скрипт не останавливался на момент перемещения окна), когда можно было просто использовать обычный GUIRegisterMsg($WM_TIMER, "WM_TIMER") - По сути тот же CallBack, но намного проще.

Инфу чисто случайно откопал из скрипта “Network profiles” (на оф. форуме) ...

Код: Выделить весь код
#include <GuiConstants.au3>

Global Const $WM_TIMER = 0x0113

$Gui = GuiCreate("_TimerFunc Test", 300, 130)

$Left = -200
$Label = GUICtrlCreateLabel("Drag the window, i am just a runing text ;)", $Left, 100)

$RunCheckBox = GUICtrlCreateCheckbox("Run text", 20, 40)

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3
            _AdlibDisable($Gui)
            Exit
        Case $RunCheckBox
            If GUICtrlRead($RunCheckBox) = 1 Then
                _AdlibEnable("_TimerFunc", $Gui, 30)
            Else
                _AdlibDisable($Gui)
            EndIf
    EndSwitch
WEnd

Func _AdlibEnable($sFunction, $hWnd, $iTime=250)
    GUIRegisterMsg($WM_TIMER, $sFunction)
    DllCall("User32.dll", "int", "SetTimer", "hwnd", $hWnd, "int", 50, "int", $iTime, "int", 0)
EndFunc

Func _AdlibDisable($hWnd)
    GUIRegisterMsg($WM_TIMER, "")
    DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "int_ptr", 50)
EndFunc

Func _TimerFunc()
    $Left += 2
    If $Left >= 300 Then $Left = -200
    ControlMove($Gui, "", $Label, $Left, 100)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:41, 08-12-2007 | #830