Autoit GUI bei Focus eines Edit CTRL code ausführen

    • Offizieller Beitrag

    Einfach mal dasd Hilfe-Bsp. anschauen:
    (leicht umgebaut)

    Spoiler anzeigen
    [autoit]

    #include <GuiEdit.au3>
    #include <WinAPI.au3> ; used for Lo/Hi word
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Global $hGUI, $hEdit

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

    _Example()

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

    Func _Example()
    Local $hInput

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

    ; Create GUI
    $hGUI = GUICreate("Edit Create", 400, 300)
    $hInput = GUICtrlCreateInput('Blub', 10, 10, 380, 20)
    $hEdit = _GUICtrlEdit_Create($hGUI, "", 10, 40, 380, 250)
    GUISetState()

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Example2

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    If Not IsHWnd($hEdit) Then $hWndEdit = GUICtrlGetHandle($hEdit)
    $hWndFrom = $ilParam
    $iIDFrom = _WinAPI_LoWord($iwParam)
    $iCode = _WinAPI_HiWord($iwParam)
    Switch $hWndFrom
    Case $hEdit, $hWndEdit
    Switch $iCode
    Case $EN_SETFOCUS ; Sent when an edit control receives the keyboard focus
    WinSetTitle($hGUI, '', '!! Edit-Ctrl hat Fokus erhalten !!')
    Case $EN_KILLFOCUS ; Sent when an edit control loses the keyboard focus
    WinSetTitle($hGUI, '', '!! Edit-Ctrl hat Fokus verloren !!')
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • ControlGetFocus in einer Schleife prüfen.

    Edti: Bugfix war schneller

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.