kk_lee69 发表于 2014-6-27 15:33:57

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

afan 发表于 2014-6-27 16:20:13

先禁用按钮,完成后再解禁

kk_lee69 发表于 2014-6-27 16:31:11

回复 2# afan
剛剛測試了一下 這樣對連擊沒用的
不過這倒是 好像比 禁用 整個 GUI 來的方便
感謝 點子

不過 連擊的方式 有辦法 防止嗎??

afan 发表于 2014-6-27 16:59:30

回复 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

kk_lee69 发表于 2014-6-27 17:46:02

回复 4# afan
測試出來了

SLEEP 會影響反應的判斷感謝提供 好方法

kevinch 发表于 2014-6-27 17:57:30

可以用一个全局变量,进入时设置为true,退出后设置为false,执行程序时先判断,如果是true就退出,这样就不会多次执行了

kk_lee69 发表于 2014-7-2 16:06:53

回复 6# kevinch
這也是個辦法   感謝提供點子

mxcjmn 发表于 2014-7-3 10:21:07

2#AFAN说的方法是我一直在用的方法,在有第一次触发后就禁用这个按钮,只到这个操作结束

wangms 发表于 2014-7-4 09:34:55

学习。。。。。。。。。。。。。。。。。。。
页: [1]
查看完整版本: GUICtrlCreateButton 重复点击会执行两次,有更好的办法防止吗??