wuluck 发表于 2009-6-29 16:23:12

创建的界面为什么运行中点击右上角的X无效?

一定要在开始关闭或者结束后才能关闭?

qqgghh1 发表于 2009-6-29 17:08:52

GUI是用事件驱动来响应用户的操作。采用消息循环模式时
While 1
$msg = GUIGetMsg()
...
...
WEnd
主程序在运行时是无法响应用户的其它操作的。因为它是单线程的。
你可以使用热键,来关闭正在运行的程序。
还有一个经验,你可以多采用调用外部程序的方式,避免所有函数或代码只能在单线程运行

wuluck 发表于 2009-6-30 00:04:00

能不能给个调用外部程序的方式的例子呢?

wuluck 发表于 2009-6-30 10:49:56

暂时想到的办法是到处加

Case $Button1
exit

可以按退出.... 但是比较麻烦

qqgghh1 发表于 2009-6-30 11:08:12

用热键啊,
HotKeySet("#c", "Quit")
即使主程序在单线程运行中,定义好这个热键后,按win+c键就可以退出来。不要把EXIT定义到button控件上。
或者你编的代码控件相应的代码都是调用外部的可执行档案
While 1
        $nMsg = GUIGetMsg()
        $Msg= TrayGetMsg()
        Select
                Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
                Case $Msg = $displayitem
                        GUISetState(@SW_RESTORE ,$Form1)
                Case $Msg = $exititem
                        Exit
                Case $nMsg = $Button1
                        Run("new_tools\AUTOStart.exe","new_tools")
                Case $nMsg = $Button2
                        Run("new_tools\update.exe")
                Case $nMsg = $Button3
                        Run("new_tools\OAPCC.EXE","new_tools")

tisiem 发表于 2009-7-3 15:56:18

啊……有什么办法让点关闭生效么,不然还真是不习惯啊。

menfan1 发表于 2009-7-4 08:38:58

Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
页: [1]
查看完整版本: 创建的界面为什么运行中点击右上角的X无效?