[решено] _GUICtrlSlider_Create - свой курсор для сайдера.

Ответить
Аватара пользователя
FlatX007

[решено] _GUICtrlSlider_Create - свой курсор для сайдера.

Сообщение FlatX007 »

Можно ли поставить свой курсор на элемент слайдер созданный через - _GUICtrlSlider_Create ?
Аватара пользователя
FlatX007

Re: [решено] _GUICtrlSlider_Create - свой курсор для сайдера.

Сообщение FlatX007 »

Привет старый Изображение





Код:

Код: Выделить всё

GUICtrlSetCursor ( controlID, cursorID )

Не знаю, поможет- ли. В справке надыбал Изображение
Аватара пользователя
Diamond

Re: [решено] _GUICtrlSlider_Create - свой курсор для сайдера.

Сообщение Diamond »

FlatX007, Можно через WM_SETCURSOR


читать дальше »




Код:

Код: Выделить всё

#include 
#include 
#include 
#include 
$hGui = GUICreate("Test_Cursor", 400, 200)
$hCursor1 = LoadCursor(0, 32649)
$hCursor2 = LoadCursor(0, 32644)
$hSlider = _GUICtrlSlider_Create($hGui, 20, 20, 320, 20, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
GUIRegisterMsg($WM_SETCURSOR, "WM_SETCURSOR")
GUISetState()
While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
        DestroyCursor($hCursor1)
        DestroyCursor($hCursor2)
        Exit
    EndSwitch
WEnd
Func WM_SETCURSOR($HWnd, $MsgID, $wParam, $lParam)
    Local $iHitTest = BitAND($lParam, 0xFFFF) ;LoWord
    Local $iMouseEvent = BitShift($lParam, 16) ;HiWord
    If $wParam = $hSlider Then
        If $iMouseEvent = 513 Then
            _WinAPI_SetCursor($hCursor2)
        Else
            _WinAPI_SetCursor($hCursor1)
        EndIf
        Return 1
    EndIf
EndFunc
;~ Загружает курсор из файла ("*.cur;*.ani;*.ico")
;~ Вслучае успеха возвращает идентификатоp нового куpсоpа. False - в случае ошибки.
;~ $sFile - путь к иконному файлу.
Func LoadCursorFromFile($sFile)
    Local $hCursor
    $hCursor = DllCall("user32.dll","hwnd", "LoadCursorFromFileA", "str", $sFile)
    If @error Then Return SetError(@error, 0 , False)
    Return SetError(0, 0, $hCursor[0])
EndFunc
;~ $hInstance: Экземпляp модуля, исполнимый файл котоpого содеpжит куpсоp или 0 для пpедопpеделенного куpсоpа.
;~ $CursorName: Идентификатоp куpсоpа или пpедопpеделенный куpсоp.
Func LoadCursor($hInstance, $CursorName)
    Local $hCursor = DllCall("user32.dll", "hwnd", "LoadCursorA", "hwnd", $hInstance, "int", $CursorName)
    If @error Then Return SetError(@error, 0 , False)
    Return $hCursor[0]
EndFunc
;~ Уничтожает курсор и освобождает связанную с ним память.
;~ $hCursor - Идентификатоp куpсоpа.
;~ В случае успешного завеpшения возвращает True
Func DestroyCursor($hCursor)
    Local $ret = DllCall("user32.dll", "int", "DestroyCursor", "hwnd", $hCursor)
    If @error Then Return SetError(@error, 0 , False)
    Return SetError(0, 0, $ret[0]  0)
EndFunc
Аватара пользователя
FlatX007

Re: [решено] _GUICtrlSlider_Create - свой курсор для сайдера.

Сообщение FlatX007 »

Diamond, крутотень!! как раз - то ,что нужно.
Ответить

Вернуться в «AutoIt»