GuiCtrlGetFocus?

  • Hallo,

    ich muß prüfen ob ein Objekt den Fokus hat.
    Das klappt aber nicht!

    Beispiel

    Spoiler anzeigen
    [autoit]


    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 104, 192, 321, 21)
    $Combo1 = GUICtrlCreateCombo("Combo1", 104, 88, 145, 25)
    $Label1 = GUICtrlCreateLabel("Fokus", 112, 272, 33, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Mach mir schon die ganze Zeit das Leben schwer...

    Also, wenn Input den Fokus hat, dann z.B. Labeltext ist Input-Fokus
    Wenn Combo den Fokus hat...

    Grüße
    Ilse :(

    2 Mal editiert, zuletzt von Ilse (5. April 2012 um 12:01)

  • So vielleicht? Der Code der bei dir auskommentiert ist, ist übrigens Blödsinn.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 104, 192, 321, 21)
    $Combo1 = GUICtrlCreateCombo("Combo1", 104, 88, 145, 25)
    $Label1 = GUICtrlCreateLabel("Fokus", 112, 272, 80, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Switch ControlGetHandle($Form1, "", ControlGetFocus($Form1))
    Case ControlGetHandle($Form1, "", $Input1)
    If GUICtrlRead($Label1) <> "Input Fokus" Then GUICtrlSetData($Label1, "Input Fokus")
    Case ControlGetHandle($Form1, "", $Combo1)
    If GUICtrlRead($Label1) <> "Combo Fokus" Then GUICtrlSetData($Label1, "Combo Fokus")
    Case Else
    If GUICtrlRead($Label1) <> "Kein Fokus" Then GUICtrlSetData($Label1, "Kein Fokus")
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Name22,

    erstmal dank für dein Hilfe.
    Ich krieg das hier einfach nicht zum laufen:

    Folgendes sollte das Script machen:
    1. Wenn Fokus auf einem Objekt ist
    und ich die + Taste drücke wird die Schrift geändert!

    Beim ersten Objekt geht das,
    aber beim zweiten nicht!

    Spoiler anzeigen
    [autoit]


    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 48, 144, 121, 21)
    $Combo1 = GUICtrlCreateCombo("Combo1", 184, 144, 145, 25)
    GUICtrlSetData(-1, "Auswahl|Text 1|Text 2")
    $List1 = GUICtrlCreateList("", 352, 144, 121, 97)
    GUICtrlSetData(-1, "Liste 1|Liste 2")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    HotKeySet("{NUMPADADD}", "plus")

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

    $FontSize = 10
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func plus()
    Switch ControlGetHandle($Form1, "", ControlGetFocus($Form1))
    Case ControlGetHandle($Form1, "", $Input1)

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

    $pos = ControlGetPos("", "", $Input1)
    $FontSize += 4
    GUICtrlSetFont($Input1, $FontSize)
    GUICtrlSetPos($Input1, $pos[0], $pos[1], $pos[2], $pos[3] + 7); Input wird vergrößert

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

    Case ControlGetHandle($Form1, "", $Combo1)

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

    $pos = ControlGetPos("", "", $Combo1)
    $FontSize += 4
    GUICtrlSetFont($Combo1, $FontSize)
    GUICtrlSetPos($Combo1, $pos[0], $pos[1], $pos[2], $pos[3] + 7);Combo wird nicht vergrößert???

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

    EndSwitch
    EndFunc ;==>plus

    [/autoit]


    ;) Grüße Ilse

  • ControlGetFocus geht nicht bei boxen weil man diese nicht in den Fokus setzen kann.. einfach mal ControlGetFocus($Form1) ausgeben lassen dann sieht man das schon das nur Edit1 und Listbox1 erkannt wird..