用GUICtrlCreateButton创建的按钮,点击时有时无反应或反应很慢,求解!!
部份代码如下:$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, 150,60,200,20)
$channel_id_input=GUICtrlCreateInput( $var1, 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,请大家帮忙看看怎么回事,谢谢! 回复 1# maolimin256
你把自定义的函数发上来看 这不是GUICtrlCreateButton的问题,在消息模式下, 只有频繁调用 GUIGetMsg 函数才有可能接收到消息,
因此您必须确保每秒时间内多次调用该函数,否则您的 GUI 将无法响应消息.
,在消息循环模式下如果循环的周期比较长,在你点击的瞬间如果程序没有在执行$nMsg = GUIGetMsg(),就会出现点击按钮无反应的现象,所以消息循环模式的循环不能太长,更要避免在循环里用sleep的函数。与之对应的是OnEvent模式,在OnEvent模式下, 脚本并不需要频繁地要求 GUI 检查是否有任何事件发生(并根据返回信息处理事件),而是仅当某个事件发生时, GUI 才临时性暂停脚本, 并调用一个用户预定义的函数来处理该事件.
建议看看帮助文件的“GUI参考”一节,有关GUI消息循环模式和GUI事件模式的介绍和例子 {:face (411):}回复 3# zldfsz
{:face (306):}楼主走前辈的路没错的,蹊径该走的早就有人都走遍了 多谢各位........换成OnEvent模式后试了下,还是一样的情况,发现只有点击按钮右边一部分位置才会响应(焦点问题?????).......这个与自定义的函数也没关系,因为最后把整个按钮移了个位置就很好用了!!.... 多谢各位........换成OnEvent模式后试了下,还是一样的情况,发现只有点击按钮右边一部分位置才会响应(焦点 ...
maolimin256 发表于 2012-3-2 10:32 http://www.autoitx.com/images/common/back.gif
按钮左边有其它控件,该控件宽度过宽,覆盖了部分按钮 赞同版主的说法 恭喜楼主, 实践出真知! 少了部分的代码
页:
[1]