Verständnisproblem WM_HSCROLL & lParam

  • Hallo

    MSDN schreibt zu lParam bei WM_HSCROLL:

    Code
    If the message is sent by a scroll bar, then this parameter is the handle to the scroll bar control.
    If the message is not sent by a scroll bar, this parameter is NULL.

    bei folgendem Script ist das jedoch genau umgekehrt.
    Wenn man den Slider bewegt, enthält lParam den Handle des Sliders;
    Bewegt man die Scrollleiste ist lParam = 0

    Spoiler anzeigen
    [autoit]

    #include <GuiScrollBars.au3>
    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate("Test", 200, 100)
    $hSlider = GUICtrlCreateSlider(10, 10, 180, 30)
    _GUIScrollBars_Init($hGui)
    _GUIScrollBars_ShowScrollBar($hGui, $SB_VERT, False)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg($WM_HSCROLL, "_WM_HSCROLL")

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _WM_HSCROLL($hWnd, $Msg, $wParam, $lParam)
    ToolTip("lParam: " & $lParam & " / Slider: " & GUICtrlGetHandle($hSlider))
    EndFunc ;==>_WM_HSCROLL

    [/autoit]

    Was stimmt den nun?
    Ist die Info auf MSDN falsch, oder hab ich einen Denkfehler?!

    thx
    E

  • Die Scrollbar ist kein eigenes Scrollbar-Control, sondern gehört zum Fenster. Daher wird es wohl nicht mitgesendet. Du kannst wie den Slider auch Scrollbars als Element in eine GUI einfügen, dann bekommst du auch das handle schätze ich ;) Das ist einfach schlecht formuliert im MSDN.