#include <GUIConstantsEx.au3>
Global $hGui = GUICreate('Режимы MessageLoop и EventMod', 400, 150, -1, -1)
Global $iButt = GUICtrlCreateButton('Включить EventMod', 150, 50, 150, 30)
Local $iButt1 = GUICtrlCreateButton('Кнопка1', 10, 10, 80, 30)
Local $iButt2 = GUICtrlCreateButton('Кнопка2', 10, 50, 80, 30)
Local $iButt3 = GUICtrlCreateButton('Кнопка3', 10, 90, 80, 30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $iButt1
MsgBox(64, '', 'Работаю только в режиме GuiMsg', 0, $hGui)
Case $iButt
Opt("GUIOnEventMode", 1)
GUICtrlSetData($iButt, 'Выключить EventMod')
GUICtrlSetOnEvent($iButt, '_Evfunc')
GUICtrlSetOnEvent($iButt2, '_BT1')
GUICtrlSetOnEvent($iButt3, '_AllMod')
GUISetOnEvent($GUI_EVENT_CLOSE, '_Close')
MsgBox(64, '', 'Режим EventMod включен' & @CRLF & 'Работаю в обоих режимах', 0, $hGui)
Case $iButt3
MsgBox(64, '', 'Работаю в режиме GuiMsg' & @CRLF & 'Выполняю функцию номер 1', 0, $hGui)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _Evfunc()
Opt("GUIOnEventMode", 0)
GUICtrlSetData($iButt, 'Включить EventMod')
MsgBox(64, '', 'Режим EventMod выключен' & @CRLF & 'Работаю в обоих режимах', 0, $hGui)
EndFunc
Func _BT1()
MsgBox(64, '', 'Работаю только в режиме EventMod', 0, $hGui)
EndFunc
Func _AllMod()
MsgBox(64, '', 'Работаю в режиме EventMod' & @CRLF & 'Выполняю функцию номер 2', 0, $hGui)
EndFunc
Func _Close()
MsgBox(64, '', 'Закрытие программы в режиме EventMod', 0, $hGui)
Exit
EndFunc