Funktionreferenz


GUISetAccelerators

Beschreibung anzeigen in

Setzt eine Tabelle mit Zugriffstasten in einem GUI Fenster.

GUISetAccelerators ( accelerators [, winhandle] )

Parameter

accelerators Ein 2D Array mit der Tabelle mit Zugriffstasten (Siehe Bemerkungen).
winhandle [optional] Fenster-Handle, welches von GUICreate() zurückgegeben wurde (voreingestellt ist das zuvor verwendete Fenster).

Rückgabewert

Erfolg: 1.
Fehler: 0.

Bemerkungen

Zugriffstasten sind ähnlich wie HotKeys, aber es gibt 2 wichtige Unterschiede:

- 1. Sie sind nur aktiv, wenn die in der Funktion angegebene GUI aktiv ist, was bedeutet, dass im Gegensatz zu HotKeys die Zugriffstasten nicht mit anderen laufenden Anwendungen funktionieren.

- 2. Sie können eine Funktion nicht direkt auslösen - sie starten durch ihr verknüpftes Control, welches dann die Funktion mit GUIGetMsg() oder GUICtrlSetOnEvent() Wenn in der GUI kein geeignetes Control vorhanden ist, kann mit GUICtrlCreateDummy ein Dummy-Steuerelement erstellt werden.

Das Array enthält die Zugriffstasten und die Control-ID der verknüpften Controls. Das Array muss als Local/Global $aArray[n][2] deklariert werden - wobei n die Anzahl von zu setzenden Zugriffstasten ist:

    $aArray[0][0] = Zugriffstaste (im HotKeySet()-Format) der ersten Taste
    $aArray[0][1] = Verknüpfte Control-ID der ersten Taste, welche durch GUICtrlCreate... zurückgegeben wurde
    $aArray[1][0] = Zugriffstaste der zweiten Taste
    $aArray[1][1] = Verknüpfte Control-ID der zweiten Taste
    ...
    $aArray[n][0] = Zugriffstaste der nten Taste
    $aArray[n][1] = Verknüpfte Control-ID der nten Taste


Falls dieser Funktion kein gültiges Array übergeben wird, werden alle Tasten für das angegebene Fensterhandle zurückgesetzt.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

GUICreate, HotKeySet

Beispiel

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    GUICreate("Benutzerdefinierte Msgbox", 270, 80)

    GUICtrlCreateLabel("Bitte klicke einen Button an!", 70, 10)
    Local $idButton_Yes = GUICtrlCreateButton("Ja", 40, 50, 50, 20)
    Local $idButton_No = GUICtrlCreateButton("Nein", 110, 50, 50, 20)
    Local $idButton_Exit = GUICtrlCreateButton("Beenden", 180, 50, 50, 20)

    ; Weist bestimmten Buttons Schnellzugriffstasten zu (für Strg+y und Strg+n)
    Local $aAccelKeys[2][2] = [["^y", $idButton_Yes], ["^n", $idButton_No]]
    GUISetAccelerators($aAccelKeys)

    GUISetState(@SW_SHOW) ; Macht die GUI sichtbar

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Schließen")
                ExitLoop

            Case $idButton_Yes
                MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Ja") ; Erscheint wenn der button ausgewählt wurde oder der Hotkey Ctrl + y gedrückt würde

            Case $idButton_No
                MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Nein") ; rscheint wenn der button ausgewählt wurde oder der Hotkey Ctrl + n gedrückt würde

            Case $idButton_Exit
                MsgBox($MB_SYSTEMMODAL, "Betätigter Button", "Beenden")
                ExitLoop

        EndSwitch
    WEnd
    GUIDelete() ; Löscht die GUI
EndFunc   ;==>Example