创建滑块控件
#Include <GuiSlider.au3>
_GUICtrlSlider_Create($hWnd, $iX, $iY [, $iWidth = 100 [, $iHeight = 20 [, $iStyle = 0x0001 [, $iExStyle = 0x00000000]]]])
$hWnd | 父窗口或所有者窗口句柄 |
$iX | 控件水平位置 |
$iY | 控件垂直位置 |
$iWidth | [可选参数] 控件宽度 |
$iHeight | [可选参数] 控件高度 |
$iStyle | [可选参数] 控件样式: $TBS_AUTOTICKS - 使用 TBM_SETRANGE 消息设置滑块范围时添加刻度. $TBS_BOTH - 放置首尾刻度线到滑块上方 $TBS_BOTTOM - 放置首尾刻度线到滑块下方. $TBS_DOWNISLEFT - 下等于左与上等于右 $TBS_ENABLESELRANGE - 选中范围的首尾刻度线显示为三角形 (而不是垂直短划线). 并高亮显示选择范围 $TBS_FIXEDLENGTH - 允许 $TBM_SETTHUMBLENGTH 消息改变滑块的大小 $TBS_HORZ - 水平滑块,这是默认样式. $TBS_LEFT - 放置刻度线到垂直滑块的左边. $TBS_NOTHUMB - 控件没有滑块. $TBS_NOTICKS - 滑块没有刻度线. $TBS_REVERSED - 较小的数字表示“较高”;一个更大的数字表示“低” $TBS_RIGHT - 放置刻度线到垂直滑块的右边. $TBS_TOP - 放置刻度线到水平滑块顶部. $TBS_TOOLTIPS - 创建一个默认的工具提示控件,显示滑块的当前位置 $TBS_VERT - 放置刻度线到垂直滑块的左边. |
默认: $TBS_AUTOTICKS 强制: $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE |
|
$iExStyle | [可选参数] 控件扩展样式.适用标准 $WS_EX_ 常量. 默认: $WS_EX_STATICEDGE |
成功: | 返回滑块控件句柄 |
失败: | 返回 0 |
#include <GUIConstantsEx.au3>
#include <GuiSlider.au3>
#include <WindowsConstants.au3>
$Debug_S = False ; 检查传递给函数的类名, 设置为True并输出到一个控件的句柄,用于检查它是否工作
Global $hSlider
_Main()
Func _Main()
Local $hGUI
; 创建 GUI
$hGUI = GUICreate("(UDF Created) Slider Create", 400, 296)
$hSlider = _GUICtrlSlider_Create($hGUI, 2, 2, 396, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
; 循环直到用户退出
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndSlider
$hWndSlider = $hSlider
If Not IsHWnd($hSlider) Then $hWndSlider = GUICtrlGetHandle($hSlider)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndSlider
Switch $iCode
Case $NM_RELEASEDCAPTURE ; The control is releasing mouse capture
_DebugPrint("$NM_RELEASEDCAPTURE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; 没有返回值
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _DebugPrint($s_text, $line = @ScriptLineNumber)
ConsoleWrite( _
"!===========================================================" & @LF & _
"+======================================================" & @LF & _
"-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
"+======================================================" & @LF)
EndFunc ;==>_DebugPrint