找回密码
 加入
搜索
查看: 1463|回复: 6

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

[复制链接]
发表于 2009-6-29 16:23:12 | 显示全部楼层 |阅读模式
一定要在开始关闭或者结束后才能关闭?
发表于 2009-6-29 17:08:52 | 显示全部楼层
GUI是用事件驱动来响应用户的操作。采用消息循环模式时
While 1
  $msg = GUIGetMsg()
  ...
  ...
WEnd
主程序在运行时是无法响应用户的其它操作的。因为它是单线程的。
你可以使用热键,来关闭正在运行的程序。
还有一个经验,你可以多采用调用外部程序的方式,避免所有函数或代码只能在单线程运行
 楼主| 发表于 2009-6-30 00:04:00 | 显示全部楼层
能不能给个调用外部程序的方式的例子呢?
 楼主| 发表于 2009-6-30 10:49:56 | 显示全部楼层
暂时想到的办法是到处加

Case $Button1
exit

可以按退出.... 但是比较麻烦
发表于 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")
发表于 2009-7-3 15:56:18 | 显示全部楼层
啊……有什么办法让点关闭生效么,不然还真是不习惯啊。
发表于 2009-7-4 08:38:58 | 显示全部楼层
Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-23 01:31 , Processed in 0.075848 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表