GUICtrlCreateButton ohne $WS_TABSTOP

  • Hi @all

    Ich möchte gerne einen Button in meinem GUI haben, welchen ich nicht mit dem Tabulator ansteuern kann. Ich meine raus gefunden zu haben, dass man dazu den style $WS_TABSTOP entfernen muss. Dieser style wird laut der Hilfe-Datei forciert (forced styles : $WS_TABSTOP)

    Kann mir einer einen tipp geben, wie ich den style entfernen kann oder wie ich mein Ziel sonst erreichen könnte?

    Vielen Dank im Voraus
    Malibu28

    Einmal editiert, zuletzt von Malibu28 (18. Dezember 2012 um 14:19)

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <WinAPI.au3>

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

    GUICreate("My GUI Button") ; will create a dialog box that when displayed is centered

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

    Opt("GUICoordMode", 2)
    Global $Button_1 = GUICtrlCreateButton("Run Notepad", 10, 30, 100)
    Global $Button_2 = GUICtrlCreateButton("Button Test", 0, -1)
    Global $Button_3 = GUICtrlCreateButton("Without Tabstop", 0, -1)
    Global $hButton_3 = GUICtrlGetHandle(-1)

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

    Global $iStyle = _WinAPI_GetWindowLong($hButton_3, $GWL_STYLE)
    _WinAPI_SetWindowLong($hButton_3, $GWL_STYLE, BitXOR($iStyle, $WS_TABSTOP))

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

    GUISetState()

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

    Global $msg

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    Run('notepad.exe')
    Case $msg = $Button_2
    MsgBox(0, 'Testing', 'Button 2 was pressed')
    Case $msg = $Button_3
    MsgBox(0, 'Testing', 'Button 3 was pressed')
    EndSelect
    WEnd

    [/autoit]