dreamneo 发表于 2012-7-3 22:14:30

求助: 如何在拖动滑动块时就产生事件,而不是放开后产生事件! [已解决]

本帖最后由 dreamneo 于 2012-7-4 22:48 编辑

用 GuiGetMsg() 方式是在松开滑块后才产生事件,如何让在拖动滑块的过程(值变化时)就产生事件!还有类似的就是在Input控件中,输入内容的同时就产生事件?
新手,不会,请教教我,谢谢!{:face (270):}

user3000 发表于 2012-7-4 15:53:59

回复 1# dreamneo

'松开'滑块其实就是松开鼠标左键. 所以应该监测鼠标的操作, 可以注册鼠标点击的系统信息.
但AU3窗口程序已经集成了个有用函数, 所以可以取下巧.#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $x = 0
$Form1 = GUICreate("Slider Test", 307, 125)
$Label1 = GUICtrlCreateLabel("0", 130, 32, 80, 17)
$Slider1 = GUICtrlCreateSlider(64, 58, 177, 65)
GUISetState(@SW_SHOW)

While 1
        $m = GUIGetCursorInfo($Form1)
        $p = WinGetPos('Slider Test')
        If IsArray($m) Then
                If $m = $Slider1 And $m = 1 And $m <> $x Then
                GUICtrlSetData($Label1, GUICtrlRead($Slider1))
                $x = $m
                Endif
        EndIf
       
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Slider1
                        GUICtrlSetData($Label1, GUICtrlRead($Slider1))
        EndSwitch
WEnd关于另一问题, input 控件的, 论坛上已有很多帖子, 请自行搜索学习!

dreamneo 发表于 2012-7-4 22:31:30

楼上太厉害了,太感谢了,自己还需慢慢研究,谢谢!
页: [1]
查看完整版本: 求助: 如何在拖动滑动块时就产生事件,而不是放开后产生事件! [已解决]