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

[GUI管理] 更新滑动条值

[复制链接]
发表于 2024-6-10 09:11:05 | 显示全部楼层 |阅读模式
大家好
请教大家一个问题,我想更新slider的值,但是一直没有成功,
帮忙看看错在哪里了:


#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <GuiSlider.au3>
#include <MsgBoxConstants.au3>
#include <SliderConstants.au3>



WinWait("Integrated Camera 属性")
WinActivate("Integrated Camera 属性")
WinSetOnTop ("Integrated Camera 属性", "" ,0)
;GUISetState(@SW_ENABLE ,"Integrated Camera 属性")
$msg= _GUICtrlSlider_SetPos(1002,100)
MsgBox(0,"",$msg)


参考例子:
D:\autoit3\Examples\Helpfile\_GUICtrlSlider_SetPos.au3

谢谢
陆迅海

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2024-6-10 10:24:30 | 显示全部楼层
1002是内部ID,该参数一般要获取该控件的句柄代入
发表于 2024-6-10 12:14:45 | 显示全部楼层
楼主的意思是把一个带有滑动条的窗口上的滑动条进行调节是吧?


我先模拟一个带有滑动条的窗口
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=www.ico
#AutoIt3Wrapper_Outfile=滑动条1.exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate('滑动条测试', 514, 97, -1, -1)
$Slider1 = GUICtrlCreateSlider(24, 16, 473, 17)
$Slider2 = GUICtrlCreateSlider(24, 40, 473, 17)
$Slider3 = GUICtrlCreateSlider(24, 64, 473, 17)
GUISetState(@SW_SHOW)
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd
然后写一个调节滑动条的代码:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=www.ico
#AutoIt3Wrapper_Outfile=设置滑动条.exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GuiSlider.au3>
Run('滑动条1.exe')
While 1
        If WinExists('滑动条测试','') Then ExitLoop
WEnd
WinActivate('滑动条测试', '')
Local $HD = WinGetHandle('滑动条测试', '')
Local $HD1 = ControlGetHandle($HD, '', 'msctls_trackbar321')
Local $HD2 = ControlGetHandle($HD, '', 'msctls_trackbar322')
Local $HD3 = ControlGetHandle($HD, '', 'msctls_trackbar323')
_GUICtrlSlider_SetPos($HD1, 20)
Sleep(2000)
_GUICtrlSlider_SetPos($HD2, 55)
Sleep(2000)
_GUICtrlSlider_SetPos($HD3, 80)
Sleep(2000)
WinClose($HD)
Exit



 楼主| 发表于 2024-6-10 13:51:56 | 显示全部楼层
afan 发表于 2024-6-10 10:24
1002是内部ID,该参数一般要获取该控件的句柄代入

你的意思要用句柄吗?
还是没有成功。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2024-6-10 14:06:59 | 显示全部楼层
boone301 发表于 2024-6-10 13:51
你的意思要用句柄吗?
还是没有成功。

句柄是会变的,要获取。3#的虎哥已经举例了 $HD1 = ControlGetHandle($HD, '', 'msctls_trackbar321')
 楼主| 发表于 2024-6-10 18:07:16 | 显示全部楼层
afan 发表于 2024-6-10 14:06
句柄是会变的,要获取。3#的虎哥已经举例了 $HD1 = ControlGetHandle($HD, '', 'msctls_trackbar321') ...

谢谢,在你的帮助下已经解决了:


#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <GuiSlider.au3>
#include <MsgBoxConstants.au3>
#include <SliderConstants.au3>
#include <GuiEdit.au3>
#include <GuiButton.au3>

WinWait("Integrated Camera 属性")
WinActivate("Integrated Camera 属性")
WinSetOnTop ("Integrated Camera 属性", "" ,0)

GUISetState()

$hWnd=ControlGetHandle("Integrated Camera 属性","","[CLASS:msctls_trackbar32; INSTANCE:4]");获取控件句柄
_GUICtrlSlider_SetPos($hWnd,200);设置为200

$hWnd=ControlGetHandle("Integrated Camera 属性","","[CLASS:Edit; INSTANCE:4]");获取控件句柄
_GUICtrlEdit_SetText($hWnd,200);设置为200

$hWnd=ControlGetHandle("Integrated Camera 属性","","[CLASS:Button; INSTANCE:9]");获取控件句柄
_GUICtrlButton_SetCheck($hWnd,$BST_UNCHECKED);不使用默认值

$hWnd=ControlGetHandle("Integrated Camera 属性","","[CLASS:Button; INSTANCE:10]");获取控件句柄
ControlSend( "Integrated Camera 属性", "", $hWnd, "{ENTER}") ;确认

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-7-27 15:11 , Processed in 0.076295 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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