#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <StaticConstants.au3> ; HotKeySet("{ESC}", "_Exit") $fPause = False $hGui = GUICreate("Form1", 400, 150) $nLabel = GUICtrlCreateLabel('', 150, 10, 100, 16, $SS_CENTER) GUICtrlSetBkColor(-1, 0xD2D2D2) $nButtonGo = GUICtrlCreateButton('Вперед', 40, 50, 80, 35) $nButtonPause = GUICtrlCreateButton('Пауза', 160, 50, 80, 35) $nButtonExit = GUICtrlCreateButton('Выход', 280, 50, 80, 35) GUISetState() GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') GUIRegisterMsg(0x0112, 'WM_SYSCOMMAND') Dim $AccelKeys[3][2] = [["{ENTER}", $nButtonGo],["{ESC}",$nButtonExit],["!{F1}",$nButtonPause]] GUISetAccelerators($AccelKeys) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $nButtonGo GUICtrlSetState($nButtonGo, $GUI_DISABLE) $fPause = False For $i = 1 To 1000 While $fPause Sleep(10) WEnd GUICtrlSetData($nLabel, $i) Sleep(1000) Next GUICtrlSetState($nButtonGo, $GUI_ENABLE) EndSwitch WEnd Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam) Switch BitAND($wParam, 0xFFFF) Case 61536 Exit EndSwitch Return $GUI_RUNDEFMSG EndFunc Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam) Switch BitAND($wParam, 0xFFFF) Case $nButtonPause $fPause = Not $fPause If $fPause Then GUICtrlSetData($nButtonPause, 'Продолжить') Else GUICtrlSetData($nButtonPause, 'Пауза') EndIf Case $nButtonExit Exit EndSwitch Return $GUI_RUNDEFMSG EndFunc |