vanlee 发表于 2015-1-20 18:44:17

提一个新手问题,求各位大大帮忙。

我现在做了一个窗口程序,有个运行按钮,我要点了运行按钮以后,按钮变成停止,然后执行循环代码。要怎么控制运行中点了停止,跳出循环停止程序并把按钮变成运行啊?没思路,求各位大大帮忙!!!万分感谢~

zhouhaijin 发表于 2015-1-20 18:48:17

在循环中取按钮消息,发现按了停止就退出循环

vanlee 发表于 2015-1-20 19:49:23

具体要怎么操作啊,可以给个实例吗?

vanlee 发表于 2015-1-21 20:05:53

怎么都没人理啊?

872777825 发表于 2015-1-21 22:22:41

以我的理解要看你这个循环是干嘛的   不同环境处理方式也不同的

vanlee 发表于 2015-1-23 08:23:24

以我的理解要看你这个循环是干嘛的   不同环境处理方式也不同的
872777825 发表于 2015-1-21 22:22 http://www.autoitx.com/images/common/back.gif


    比分说呢?

austere 发表于 2015-1-23 08:38:46

你把你做的程序代码发上来,然后大家帮你看..... 刚说没用.....

zhouhaijin 发表于 2015-1-30 08:30:21

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

Dim $Start = 0
$Form1 = GUICreate("Form1", 151, 100, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Button1 = GUICtrlCreateButton("运行", 24, 40, 97, 37)
GUICtrlSetOnEvent(-1, "_Button1")
$Label1 = GUICtrlCreateLabel("10000", 50, 20)
GUISetState(@SW_SHOW)

While 1
        Sleep(1000)
        If $Start = 1 Then GUICtrlSetData($Label1, GUICtrlRead($Label1) - 1)
WEnd


Func _exit()
        Exit
EndFunc   ;==>_exit

Func _Button1()
        If GUICtrlRead($Button1) = "运行" Then
                GUICtrlSetData($Button1, "停止")
                $Start = 1
        Else
                GUICtrlSetData($Button1, "运行")
                $Start = 0
        EndIf
EndFunc   ;==>_Button1

netegg 发表于 2015-1-30 08:47:19

唉,不就是个倒计时吗,论坛里有的是例子

zhouhaijin 发表于 2015-1-30 09:24:15

回复 1# vanlee


下面是按你说的过程实现
    #include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 151, 100, 192, 124)
$Button1 = GUICtrlCreateButton("运行", 24, 40, 97, 37)
$Label1 = GUICtrlCreateLabel("10000", 50, 20)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Select
                Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
                Case $nMsg = $Button1
                        GUICtrlSetData($Button1, "停止")
                        While GUIGetMsg() <> $Button1
                                GUICtrlSetData($Label1, GUICtrlRead($Label1) - 1)
                        WEnd
                        GUICtrlSetData($Button1, "运行")
        EndSelect
WEnd
页: [1]
查看完整版本: 提一个新手问题,求各位大大帮忙。