Scrollbar einfügen

  • Moin

    Ich scheitere momentan an der Aufgabe eine Scroll-Funktion einzufügen.

    Es soll möglich sein die Elemente auf der rechten Seite zu scrollen, aber der Tree View links soll an Ort und Stelle verharren.
    Ich habe es bisher nur geschafft die ganze GUI mit einer Scrollbar auszustatten. Wie bekomm ich das hin, dass ich nur einen Teil scrolle?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GuiTreeView.au3>
    #include <Array.au3>

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

    $GUI = GUICreate("Test", 1200, 600)
    $TreeView = _GUICtrlTreeView_Create($GUI, 50, 50, 296, 268)
    GUICtrlCreateLabel("Untersuchung",400,20,100,30)
    GUICtrlCreateLabel("Status",650,20,100,30)
    GUICtrlCreateLabel("Messwert",800,20,100,30)
    GUICtrlCreateLabel("Bemerkungen",1000,20,100,30)

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

    ;_LoadIni()

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

    For $x = 0 To 6
    _CreateElement("Testobjekt " & $x,$x*80)
    Next
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _CreateElement($Name,$pos)

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

    GuiCtrlCreateLabel($name,400,$pos+50,100,100)

    $status = GUICtrlCreateCombo("",640,$pos+50,80,50,$CBS_DROPDOWNlist + $CBS_AUTOHSCROLL + $WS_VSCROLL)
    GUICtrlSetData($status,"First Things|Second|Third")

    $messwert = GUICtrlCreateInput("",780,$pos+50,90,23)
    $bemerkungen = GUICtrlCreateInput("",930,$pos+50,220,23)

    EndFunc

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GuiTreeView.au3>
    #include <GUIScrollbars_Ex.au3>
    #include <Array.au3>
    #include <WinAPI.au3>

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

    $GUI = GUICreate("Test", 1200, 600)
    ;GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    GUICtrlCreateLabel("Untersuchung",420,20,100,30)
    GUICtrlCreateLabel("Status",560,20,100,30)
    GUICtrlCreateLabel("Messwert",695,20,100,30)
    GUICtrlCreateLabel("Bemerkungen",880,20,100,30)

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

    Global $TreeView = _GUICtrlTreeView_Create($GUI, 50, 50, 296, 268)
    ;_LoadIni()

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

    GUISetState()
    $GUI_Child = GUICreate("Child", 750, 500, 400, 50, BitOr($WS_POPUP, $WS_BORDER))
    GUISetBkColor(0xCCFFCC)
    _WinAPI_SetParent($GUI_Child, $GUI)

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

    $Anz = 12
    For $x = 0 To $anz
    _CreateElement("Testobjekt " & $x,$x*80)
    Next
    _GUIScrollbars_Generate($GUI_Child, 0, $Anz*80)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _CreateElement($Name,$pos)

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

    GuiCtrlCreateLabel($name,20,$pos+50,100,100)

    $status = GUICtrlCreateCombo("",140,$pos+50,80,50,$CBS_DROPDOWNlist + $CBS_AUTOHSCROLL + $WS_VSCROLL)
    GUICtrlSetData($status,"First Things|Second|Third")

    $messwert = GUICtrlCreateInput("",280,$pos+50,90,23)
    $bemerkungen = GUICtrlCreateInput("",420,$pos+50,220,23)

    EndFunc

    [/autoit]

    Manchmal muss man nur die richtigen Worte für seine Google Suchanfrage benutzen, um zum Ziel zu kommen...
    http://www.autoitscript.com/forum/topic/13…ertical-scroll/ + GuiScrollbars_Ex UDF
    Falls wer noch andere Lösungen für das Problem hat immer raus damit.