GUICtrlCreateButton 重复点击会执行两次,有更好的办法防止吗??
GUICtrlCreateButton 重复点击会执行两次,有更好的办法防止重复点击执行两次的办法吗??GUI 接口操作的时候通常 一个 BUTTON 按钮 只会希望执行一次,之前看范例用的方法 是 按钮一执行就会把整个 GUI 接口 LOCK 住 等执行完毕了才解开,但是 实际上操作的时候 其实有点不顺,有更好的防止办法吗??
举例下面的 程序当你 连续 在按钮上 按三下 就会依序跳出 三个 msgBOX 有办法改成不管怎么按 都只会跳出一个吗??
#include <GUIConstantsEx.au3>
Example()
;-------------------------------------------------------------------------------------
; Example - Press the button to see the value of the radio boxes
; The script also detects state changes (closed/minimized/timeouts, etc).
Func Example()
Local $button_1
Opt("GUICoordMode", 1)
$WinMain=GUICreate("Radio Box Demo", 400, 280)
; Create the controls
$button_1 = GUICtrlCreateButton("B&utton 1", 30, 20, 120, 40)
; Show the GUI
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case$button_1
MsgBox(4096, "Default button clicked", "Radio " )
EndSwitch
sleep(100)
WEnd
EndFunc ;==>Example 先禁用按钮,完成后再解禁 回复 2# afan
剛剛測試了一下 這樣對連擊沒用的
不過這倒是 好像比 禁用 整個 GUI 來的方便
感謝 點子
不過 連擊的方式 有辦法 防止嗎?? 回复 3# kk_lee69
连击再快也快不过代码吧…GUICreate('')
$button_1 = GUICtrlCreateButton("B&utton 1", 30, 20, 120, 40)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $button_1
GUICtrlSetState($button_1, 128)
MsgBox(0, '', '')
GUICtrlSetState($button_1, 64)
EndSwitch
WEnd 回复 4# afan
測試出來了
SLEEP 會影響反應的判斷感謝提供 好方法 可以用一个全局变量,进入时设置为true,退出后设置为false,执行程序时先判断,如果是true就退出,这样就不会多次执行了 回复 6# kevinch
這也是個辦法 感謝提供點子 2#AFAN说的方法是我一直在用的方法,在有第一次触发后就禁用这个按钮,只到这个操作结束 学习。。。。。。。。。。。。。。。。。。。
页:
[1]