GUI mit Scrollbalken - Problem Icon an der falschen Stelle

  • Hi,
    ich habe ne GUI mit Scrollbalken.
    Wenn ich auf das Icon klicke wird rechts daneben ein neues Icon erstellt.
    Dies funktioniert soweit.

    Wenn jedoch mit den vertikalen Scrollbalken etwas nach unten verschiebe und dann das linke Icon anklicke, dann wird das Icon rechts davon erstellt.
    Wenn ich jedoch die GUI wieder ganz hochfahre, ist das rechte Icon an der falschen Stelle.

    Wie schaffe ich es, dass beide Icons nebeneinander stehen, unabhängig davon, wo der vertikale Scrollbalken steht?

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    #include<GUIScrollBars.au3>

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

    $GUI = GUICreate("test", 300, 700, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU));, $WS_SIZEBOX))
    _GUIScrollBars_Init ($GUI, 500, 750) ;festlegen wann die Scrollbalken kommen sollen (900 = Breite, 50 = Höhe)

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

    GUIRegisterMsg($WM_VSCROLL, "MY_WM_VSCROLL")
    GUIRegisterMsg($WM_HSCROLL, "MY_WM_HSCROLL")
    GUIRegisterMsg($WM_SIZE, "MY_WM_SIZE")

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

    $icon = GUICtrlCreateIcon("shell32.dll",10, 100, 100, 50, 50)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $icon
    GUICtrlCreateIcon("shell32.dll", 20, 170, 100, 50, 50)
    EndSelect
    Wend

    [/autoit]

    PS: Hoffe ihr habts verstanden, ist blöd zu erklären :P

  • Öhm leider habe ich GUIScrollBars.au3 nicht, könntest Du das vielleicht mal posten?

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Von progandy:

    Zitat

    Wie wär ne Suche im eng. Forum (GUISCrollBars)

    Hab ich geschaut aber es nicht gesehen :(

    So hier mein Vorschlag:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    #include<GUIScrollBars.au3>

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

    $GUI = GUICreate("test", 500, 700, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU));, $WS_SIZEBOX))
    _GUIScrollBars_Init ($GUI, 500, 750) ;festlegen wann die Scrollbalken kommen sollen (900 = Breite, 50 = Höhe)

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

    GUIRegisterMsg($WM_VSCROLL, "MY_WM_VSCROLL")
    GUIRegisterMsg($WM_HSCROLL, "MY_WM_HSCROLL")
    GUIRegisterMsg($WM_SIZE, "MY_WM_SIZE")

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

    $icon = GUICtrlCreateIcon("shell32.dll",10, 100, 100, 50, 50)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $icon
    $pos = ControlGetPos("","",$icon) ; Abfragen wo das Icon ist
    $left = $pos[0] + 70 ; Zu der X Pos. 70 addieren
    $top = $pos[1] ; Y abspeichern
    GUICtrlCreateIcon("shell32.dll", 20, $left, $top, 50, 50) ;hier die beiden Vars übergeben

    ;soll immer neben dem letzen icon ein neues erstellt werden:
    ;$icon = GUICtrlCreateIcon("shell32.dll", 20, $left, $top, 50, 50)
    EndSelect
    Wend

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)