找回密码
 加入
搜索
查看: 2108|回复: 5

请问如何让程序一边运行一系列语句一边响应窗体上的按钮事件

[复制链接]
发表于 2009-12-22 00:31:39 | 显示全部楼层 |阅读模式
本帖最后由 iPAQ 于 2009-12-24 00:54 编辑

例如 ,我要运行一系列语句,期间希望能够响应窗体上的按钮,按下按钮时可以在不中断正在执行的语句上,另外运行其他语句(这是不是双线程?),或者可以暂停当前正在运行的语句,执行按钮触发的语句,在执行完后,继续执行先前执行的语句。

以前用VFP时,通过在语句中各一段或几次循环中插入DoEvent,来在中途响应按键,实现类似功能。

请问用AutoIt该如何实现?

谢谢!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2009-12-22 10:32:36 | 显示全部楼层
本帖最后由 水木子 于 2009-12-22 10:39 编辑

找个以前写的列子来回答LZ的问题!
嘿嘿!是不是感觉和LZ说的情况有点像啊?
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <ScrollBarConstants.au3>

GUICreate("Form1", 320, 300)
$List1 = GUICtrlCreateEdit("", 10, 10, 300, 200)
$Button1 = GUICtrlCreateButton("向上翻滚", 20, 230, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("向下翻滚", 120, 230, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("暂停", 220, 230, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

For $i = 1 To 100        
        _GUICtrlEdit_AppendText($List1 ,$i&@LF)
Next
Send("^{HOME}")

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Button1
                        AdlibUnRegister( "xia" )
                        AdlibRegister('shang' ,100)
                Case $Button2
                        AdlibUnRegister( "shang" )
                        AdlibRegister('xia' ,100)                
                Case $Button3
                        AdlibUnRegister( "shang" )
                        AdlibUnRegister( "xia" )
        EndSwitch
WEnd

Func shang()        
        _GUICtrlEdit_Scroll($List1, $SB_LINEUP)
EndFunc        

Func xia()        
        _GUICtrlEdit_Scroll($List1, $SB_LINEDOWN)
EndFunc   
发表于 2009-12-23 08:19:37 | 显示全部楼层
本帖最后由 maxkingmax 于 2009-12-23 08:21 编辑

使用 GUIONEVENTMODE

神奇传送门 http://www.autoitx.com/forum.php ... &from=favorites
 楼主| 发表于 2009-12-23 12:10:01 | 显示全部楼层
非常感谢两位的解答!我学习学习。
 楼主| 发表于 2009-12-24 00:54:26 | 显示全部楼层
AdlibRegister()方法只是定时重复执行,不适合我的用途。

我用GUIONEVENTMODE方法实现了。问题解决了。

再次感谢两位!
发表于 2013-1-24 00:58:05 | 显示全部楼层
GUIONEVENT这个好啊。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 13:17 , Processed in 0.157750 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表