Что нового

Работа с формой

Yuri_Nsk_700

Новичок
Сообщения
4
Репутация
0
Я начинающий, сильно не пинайте.

есть цикл
While 1

WEnd

из него вызываю функцию, в функции есть форма, но в ней тоже есть
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
соответственно, как форма отработала, скрипт завершается.
как зациклить работу скрипта?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Для закрытия формы используйте
Код:
GUIDelete()

А вместо Exit
Код:
ExitLoop
; или
Return
в зависимости от логики функции.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
примерно так
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $Form1 = GUICreate("Родительское окно", 407, 180, -1, -1)
Local $Button1 = GUICtrlCreateButton("Button1", 72, 40, 75, 25)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            _GuiChild($Form1)
    EndSwitch
WEnd

Func _GuiChild($hWND)
    GUISetState(@SW_DISABLE, $hWND)
    Local $Form = GUICreate("Дочернее окно", 240, 178, -1, -1, -1, $WS_EX_MDICHILD, $hWND)
    Local $Button = GUICtrlCreateButton("Функция", 10, 20, 75, 25)
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                GUIDelete($Form)
                GUISetState(@SW_ENABLE, $hWND)
                Return WinActivate($hWND)
            Case $Button
                MsgBox(64, '', 'Сообщение дочернего окна', 0, $Form)
        EndSwitch
    WEnd
EndFunc   ;==>_GuiChild
 
Верх