Войти

Показать полную графическую версию : [решено] Проблема с закрытием GUI и продолжением работы программы


sashadeg
14-06-2009, 16:28
Подскажите пожалуйста чем заменить

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

чтобы после появления GUI программы выполнялась далеше и само GUI можно было закрыть без проблем в любое время...

Вот на этом примере плиз...

#include <WindowsConstants.au3>
#include <GUIConstants.au3>
$GUI1=GUICreate("Info", 145,70,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
GUICtrlCreateLabel("Парам", 2,5,200,15)
GUICtrlCreateLabel("Бурум", 2,20,200,15)
GUICtrlCreateLabel("Тарам", 2,35,200,15)
GUISetState(@SW_SHOW, $GUI1)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
; А дальше программа не идет
MsgBox(1, "", "Продолжение программы...")

beve
14-06-2009, 19:56
Если тебе цикл While...Wend не нужен, то можеш сделать вот так:
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)

$GUI1=GUICreate("Info", 145,70,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
GUISetOnEvent($GUI_EVENT_CLOSE,"Close")
GUICtrlCreateLabel("Парам", 2,5,200,15)
GUICtrlCreateLabel("Бурум", 2,20,200,15)
GUICtrlCreateLabel("Тарам", 2,35,200,15)
GUISetState(@SW_SHOW, $GUI1)

Func Close()
GUISetState(@SW_HIDE, $GUI1); это чтобы скрыть окно Gui
EndFunc

; А дальше программа (не идет) уже идет...
Sleep(5000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Sleep(1000)
MsgBox(0, "", "Продолжение программы...",1)
Exit

sashadeg
14-06-2009, 21:00
Ну что поделаешь? как всегда beve на высоте... РеспеХт и УважуХа !

Creat0R
14-06-2009, 23:54
sashadeg, А вам бы уже пора привыкнуть к тому, что на форуме принято отмечать свои темы решёнными (если они являются таковыми).




© OSzone.net 2001-2012