函数参考


_GUICtrlSlider_Create

创建滑块控件

#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

注意/说明

此功能为高级用户学习如何控制工程.

相关

_GUICtrlSlider_Destroy

示例/演示


#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