找回密码
 加入
搜索
查看: 4217|回复: 8

[AU3基础] 用GUICtrlCreateButton创建的按钮,点击时有时无反应或反应很慢,求解!!

  [复制链接]
发表于 2012-3-1 19:10:40 | 显示全部楼层 |阅读模式
部份代码如下:
$Button1 = GUICtrlCreateButton("编辑TVOD节目单", 50, 300, 140, 30)
...
While 1
       $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                                      Exit
                                Case $Combo1
                     ;MsgBox(0,"",GUICtrlRead($Combo1))
                                         $tmp_str=GUICtrlRead($Combo1)
                                         $var1 = IniReadSection("456.ini", $tmp_str)
                                         If @error <> 1 Then
                                                 GUICtrlCreateInput( $var1[1][0], 150,60,200,20)
                                                 $channel_id_input=GUICtrlCreateInput( $var1[2][0], 150,90,200,20)
                                                 ;MsgBox(4096, "channel_id", $channel_id)
                                         Else
                                                 MsgBox(4096, "TVOD频道", "没有找到")
                                         EndIf
                                Case $Button1
                                         ;MsgBox(4096, "","hello!")       
                                         tvodedit()
                                Case $Button2
                                         tvodload()
                                Case $Button3
                                      Exit

        EndSwitch
WEnd
....


点击$Button1后有时正常调用函数tvodedit(),有时无反应或反应很慢,新手,初步接触autoit,请大家帮忙看看怎么回事,谢谢!
发表于 2012-3-1 23:44:27 | 显示全部楼层
回复 1# maolimin256


    你把自定义的函数发上来看
发表于 2012-3-2 00:36:41 | 显示全部楼层
这不是GUICtrlCreateButton的问题,在消息模式下, 只有频繁调用 GUIGetMsg 函数才有可能接收到消息,
因此您必须确保每秒时间内多次调用该函数,否则您的 GUI 将无法响应消息.
,在消息循环模式下如果循环的周期比较长,在你点击的瞬间如果程序没有在执行$nMsg = GUIGetMsg(),就会出现点击按钮无反应的现象,所以消息循环模式的循环不能太长,更要避免在循环里用sleep的函数。与之对应的是OnEvent模式,在OnEvent模式下, 脚本并不需要频繁地要求 GUI 检查是否有任何事件发生(并根据返回信息处理事件),而是仅当某个事件发生时, GUI 才临时性暂停脚本, 并调用一个用户预定义的函数来处理该事件.
建议看看帮助文件的“GUI参考”一节,有关GUI消息循环模式和GUI事件模式的介绍和例子
发表于 2012-3-2 00:54:13 | 显示全部楼层
回复 3# zldfsz


楼主走前辈的路没错的,蹊径该走的早就有人都走遍了
 楼主| 发表于 2012-3-2 10:32:51 | 显示全部楼层
多谢各位........换成OnEvent模式后试了下,还是一样的情况,发现只有点击按钮右边一部分位置才会响应(焦点问题?????).......这个与自定义的函数也没关系,因为最后把整个按钮移了个位置就很好用了!!....
发表于 2012-3-2 12:45:21 | 显示全部楼层
多谢各位........换成OnEvent模式后试了下,还是一样的情况,发现只有点击按钮右边一部分位置才会响应(焦点 ...
maolimin256 发表于 2012-3-2 10:32



    按钮左边有其它控件,该控件宽度过宽,覆盖了部分按钮
发表于 2012-3-2 15:21:08 | 显示全部楼层
赞同版主的说法
发表于 2012-3-3 02:58:27 | 显示全部楼层
恭喜楼主, 实践出真知!
发表于 2012-3-5 15:53:12 | 显示全部楼层
少了部分的代码
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 19:33 , Processed in 0.085071 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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