lyf362345 发表于 2017-10-11 00:12:13

如何用自定义按钮而不是关闭按钮跳出循环

本帖最后由 lyf362345 于 2017-10-11 00:33 编辑

搜索了下 目前能用点击关闭跳出来了, 但是没找到用自定义按钮跳出的方式

想做到的结果是 点击开始按钮 开始循环, 点击关闭 结束循环

参考这个 已经解决 http://autoitx.com/forum.php?mod=viewthread&tid=37727

但是有个小问题就是 如果 sleep 的时间过久, 比如5秒, 那么点击停止就会延迟5秒才会生效, 这个怎么弄呢

lin6051 发表于 2017-10-11 19:53:06

回复 1# lyf362345


    你那链接 不是 写得好详细了么? 用注册 消息GUICreate('test', 200, 100)
$button1 = GUICtrlCreateButton('start', 50, 50)
$button2 = GUICtrlCreateButton('stop', 150, 50)
GUISetState()
GUIRegisterMsg(0x111, '_WM_COMMAND')

Dim $a=1
While 1
      $msg = GUIGetMsg()
      Switch $msg
                Case -3
                        Exit
                Case $button1
                        test()
                Case $button2
                        
      EndSwitch
WEnd

Func Button_2()
exit MsgBox(0, '', 'a='&$a)
EndFunc

Func test()
For $i=1 to 999999
sleep(999)
$a+=1
Next
EndFunc   ;==>test


Func _WM_COMMAND($hWnd, $msg, $wParam, $lParam)
      If BitAND($wParam, 0x0000FFFF) = $button2 Then Button_2()
EndFunc   ;==>_WM_COMMAND

lin6051 发表于 2017-10-11 20:16:29

本帖最后由 lin6051 于 2017-10-11 20:18 编辑


GUICreate('test', 200, 100)
$button1 = GUICtrlCreateButton('start', 50, 50)
$button2 = GUICtrlCreateButton('stop', 150, 50)
GUISetState()
GUIRegisterMsg(0x111, '_WM_COMMAND')
GUIRegisterMsg(0x112, '_WM_SYSCOMMAND')

Dim $a = 1
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case $button1
                        test()
        EndSwitch
WEnd

Func Button_2()
        Exit MsgBox(0, '', 'a=' & $a)
EndFunc   ;==>Button_2

Func test()
        For $i = 1 To 999999
                Sleep(999)
                $a += 1
        Next
EndFunc   ;==>test


Func _WM_COMMAND($hWnd, $msg, $wParam, $lParam)
        Switch BitAND($wParam, 0x0000FFFF)
                Case $button2
                        Button_2()
        EndSwitch
EndFunc   ;==>_WM_COMMAND


Func _WM_SYSCOMMAND($hWnd, $msg, $wParam, $lParam)
        Switch $wParam
                Case 0xF060
                        Button_2()
        EndSwitch
EndFunc   ;==>_WM_SYSCOMMAND

lyf362345 发表于 2017-10-11 22:57:26

回复 2# lin6051


    感谢, 我研究下看看

lyf362345 发表于 2017-10-11 22:57:35

回复 3# lin6051


    谢谢

柚子爸爸 发表于 2017-10-12 08:07:14

回复 3# lin6051


    我研究下看看
页: [1]
查看完整版本: 如何用自定义按钮而不是关闭按钮跳出循环