Ähnliches wie GUICtrlSetOnEvent bei Input?

  • Hi Leute,

    ganz simpel - daher ich aber keine Ahnung habe wie: Ich will beim klicken auf das Input eine leere MsgBox anzeigen lassen. Das ganze soll im GUIOnEventMode passieren... Hoffe ihr könnt mir weiter helfen:

    Hinweis: Habe $GUI_DISABLE und $GUI_ENABLE deshalb benutzt, um die Markierung aus dem Input wegzukriegen, die (wenn man mal die beiden Zeilen von GUICtrlSetState($GUI_DISABLE) und ENABLE weggenommen hat) beim Start des GUI's kommt. Wenn ihr ne elegatere Lösung wisst, nur her damit.

    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    $hGUI = GUICreate("Beispiel", 190, 25)
    $hInput = GUICtrlCreateInput("Klicken damit eine MsgBox erscheint!", 3, 3, 185)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetState(-1, $GUI_ENABLE)
    GUISetOnEvent(-3, "_Exit")
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Exit()
    GUIDelete()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von BurakSZ (28. Juni 2010 um 11:53)

    • Offizieller Beitrag

    Einfach Ereignis "PRIMARYDOWN" nutzen und prüfen ob Cursor über Input:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    $hGUI = GUICreate("Beispiel", 190, 25)
    $hInput = GUICtrlCreateInput("Klicken damit eine MsgBox erscheint!", 3, 3, 185)
    GUISetOnEvent(-3, "_Exit")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_MouseDown')
    GUISetState()
    ControlSend($hGui, '', $hInput, "{CTRLDOWN}{HOME}{CTRLUP}")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Exit()
    GUIDelete()
    Exit
    EndFunc

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

    Func _MouseDown()
    $cursor = GUIGetCursorInfo($hGui)
    If $cursor[4] = $hInput Then MsgBox(0, '', 'Und hier die MessageBox!')
    EndFunc

    [/autoit]