Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Не работает GUI после выхода другова GUI (http://forum.oszone.net/showthread.php?t=140237)

sashadeg 15-05-2009 18:56 1119460

Не работает GUI после выхода другова GUI
 
Тут типа идёт подтверждение для выхода из программы.

Нажал "выход" - вылазит GUI с подтверждением.
Нажимаешь "да" - выходит.
Нажимаешь "нет" - не выходит, но кнопка "выход" перестаёт работать...

Код:


#include <WindowsConstants.au3>
#include <GUIConstants.au3>
$GUI1=GUICreate("Bot-Info",  150,200,-1, -1, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
$Buttonexit = GUICtrlCreateButton("Выход", 2, 150, 131, 30)
GUISetState(@SW_SHOW, $GUI1)
While 1
Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
          WinSetState("Bot-Info","",@SW_MINIMIZE)
          Case $Buttonexit
                  $GUI_EXIT=GUICreate("CloseBot",  150,100,50, 50, BitOR($WS_CAPTION, $WS_SYSMENU), -1)
                  GUICtrlCreateLabel("точно выйти???",      3,3,300,15)
                  $Butexit = GUICtrlCreateButton("Да",2, 50, 50, 15)
                  $Butexit1 = GUICtrlCreateButton("Нет",100, 50, 50, 15)
                  GUISetState(@SW_SHOW, $GUI_EXIT)
While 1
Switch GUIGetMsg()
Case $Butexit
        exit
case $Butexit1
        GUIDelete($GUI_EXIT)
        EndSwitch
WEnd
        Exitloop
        EndSwitch
WEnd

P.S. Наверно уже задолбал тут всех :/

sashadeg 15-05-2009 19:13 1119474

Вроде нужно Exitloop убрать, но без него не робит

Yashied 15-05-2009 19:15 1119477

Я бы сделал так:

Код:

#include <WindowsConstants.au3>
#include <GUIConstants.au3>
$GUI1 = GUICreate("Bot-Info", 150, 200, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU))
$Buttonexit = GUICtrlCreateButton("Выход", 2, 150, 131, 30)
GUISetState(@SW_SHOW, $GUI1)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            WinSetState("Bot-Info", "", @SW_MINIMIZE)
        Case $Buttonexit
            GUISetState(@SW_DISABLE, $GUI1)
            $GUI_EXIT = GUICreate("CloseBot", 150, 100, 50, 50, BitOR($WS_CAPTION, $WS_SYSMENU), -1, $GUI1)
            GUICtrlCreateLabel("точно выйти???", 3, 3, 300, 15)
            $Butexit = GUICtrlCreateButton("Да", 2, 50, 50, 15)
            $Butexit1 = GUICtrlCreateButton("Нет", 100, 50, 50, 15)
            GUISetState(@SW_SHOW, $GUI_EXIT)
            While 1
                Switch GUIGetMsg()
                    Case $Butexit
                        Exit
                    Case $Butexit1
                        DllCall('user32.dll', 'hwnd', 'SetActiveWindow', 'hwnd', $GUI1)
                        GUIDelete($GUI_EXIT)
                        GUISetState(@SW_ENABLE, $GUI1)
                        ExitLoop
                EndSwitch
            WEnd
    EndSwitch
WEnd


sashadeg 15-05-2009 22:03 1119635

Вот чёрт.... Я сразу и не заметил... Мне же нужно чтобы программа не ждала ничего, а продолжада работу далее после WEND
А она ждёт когда я по кнопкам потыкаюсь... как можно это осуществить?


Время: 21:54.

Время: 21:54.
© OSzone.net 2001-