Text per Drag&Dop verschieben

  • hallo Gemeinde, 8|
    habe kleinen Text "hallo" [static1] auf einer GUI erstellt.
    Dieser soll jetzt aber evtl. mittels rechter Maustaste verschoben werden.

    Wie geht das?
    Danke @Berti

  • Meinst du so?

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>

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

    Opt('GUIOnEventMode', 1)
    Global $title = "Drag & Drop"

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

    GUICreate($title)
    GUISetOnEvent(-3, '_Ende')

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

    GUICtrlCreateLabel("Drag Me", 100, 100)
    GUICtrlSetOnEvent(-1, '_DragMe')
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _DragMe()
    Local $Pos_C, $Pos_M, $Opt_old, $x_Offset, $y_Offset
    Local $dll = DllOpen("user32.dll")

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

    $Opt_old = Opt('MouseCoordMode', 0)
    $Pos_C = ControlGetPos($title, "", @GUI_CtrlId)
    $Pos_M = MouseGetPos()
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    GUICtrlSetPos(@GUI_CtrlId, $Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    Sleep(10)
    WEnd
    DllClose($dll)
    Opt('MouseCoordMode', $Opt_old)
    EndFunc

    [/autoit]
  • Hallo Funkey.

    Dein Script ist doch supi.
    Ich würde aber noch ein "_MouseTrap " mit in's Script nehmen, damit der Text nicht aus dem GUI "geschoben" werden kann.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl