Как сделать дочернее окно? Ниже пример вызов функции, которая приостанавливает основной цикл опроса и работает только с дочерним окном. При чём таких функций может быть сколько угодно и они могут быть вложенными. Дочернее окно отрабатывает свой цикл опроса, поэтому они изолированы и независимы от главного окна
_MsgAsk - сообщение с чекбоксом "Больше не справшивать".
_InputBox - Аналог InputBox, но основанный на собственном GUI.
#include <WindowsConstants.au3>
$hGui = GUICreate('My program', 420, 250)
$MsgBox = GUICtrlCreateButton("Button", 20, 20, 90, 30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $MsgBox
_MsgBox($hGui)
Case -3
Exit
EndSwitch
WEnd
Func _MsgBox($hGuiParent)
Local $EditBut, $Gui1, $msg, $StrBut
GUISetState(@SW_DISABLE, $hGuiParent)
$Gui1 = GUICreate('Сообщение', 200, 70, -1, -1, $WS_CAPTION + $WS_SYSMENU + $WS_POPUP, -1, $hGuiParent)
GUICtrlCreateLabel('Что будем делать сейчас?', 20, 10, 180, 23)
$EditBut = GUICtrlCreateButton('Редактор', 10, 40, 80, 22)
$StrBut = GUICtrlCreateButton('Калькулятор', 100, 40, 80, 22)
GUISetState(@SW_SHOW, $Gui1)
While 1
Switch GUIGetMsg()
Case $EditBut
Run('Notepad.exe')
Case $StrBut
ShellExecute('Calc.exe')
Case -3
GUISetState(@SW_ENABLE, $hGuiParent)
GUIDelete($Gui1)
ExitLoop
EndSwitch
WEnd
EndFunc ;==>_MsgBox http://pastebin.com/qnx3ZWHV |