Функция _GUICtrlSlider_Create

 ↑  ←  Описание функции


_GUICtrlSlider_Create

Создаёт Slider (слайдер, регулятор, ползунок)

#include <GuiSlider.au3>
_GUICtrlSlider_Create($hWnd, $iX, $iY [, $iWidth = 100 [, $iHeight = 20 [, $iStyle = 0x0001 [, $iExStyle = 0x00000000]]]])

Параметры

$hWnd Дескриптор родительского окна или окна владельца
$iX X-координата левого края элемента
$iY Y-координата верхнего края элемента
$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

Возвращаемое значение

Успех:Возвращает дескриптор Slider
Ошибка:Возвращает 0

Примечания

Эта функция предназначена для опытных пользователей и для изучения того, как элемент работает.

См. также

_GUICtrlSlider_Destroy

Пример

#include <GUIConstantsEx.au3>
#include <GuiSlider.au3>
#include <WindowsConstants.au3>

$Debug_S = False ; Проверяет ClassName передаваемый в функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $hSlider

_Main()

Func _Main()
    Local $hGUI

    ; Создаёт GUI
    $hGUI = GUICreate("(UDF) Создаёт Slider", 400, 296)
    $hSlider = _GUICtrlSlider_Create($hGUI, 2, 2, 396, 35, 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 ; Элемент освобождает захват мыши
                    _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 & _
            "-->Строка(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
            "+======================================================" & @LF)
EndFunc   ;==>_DebugPrint