Définit la table des accélérateurs à utiliser dans une GUI.
GUISetAccelerators ( accelerators [, winhandle] )
accelerators | Tableau à deux dimensions contenant la table des accélérateurs (Voir Remarques). |
winhandle | [optionnel] Handle Windows retourné par GUICreate() (par défaut, la fenêtre précédemment utilisée). |
Succès: | Retourne 1. |
Échec: | Retourne 0. |
Les touches accélératrices sont semblables aux HotKeys, mais il y a deux différences importantes:
- 1. Elles ne sont actives que si la GUI spécifiée dans la fonction est active, ce qui signifie que, contrairement aux HotKeys, les touches Accelerator n'interféreront pas avec les autres applications en cours d'exécution.
- 2. Elles ne peuvent pas déclencher une fonction directement - elles actionnent leur contrôle associé qui déclenche alors la fonction en utilisant GUIGetMsg() ou GUICtrlSetOnEvent(). S'il n'y a pas de contrôle approprié disponible dans la GUI, un contrôle Dummy peut être créé en utilisant GUICtrlCreateDummy.
Le tableau passé en paramètre à cette fonction contient les touches Accelerators et les ControlIDs des contrôles associés. Le tableau doit être défini comme Local/Global $aArray[n][2] - où n est le nombre de raccourcis clavier à définir:
$aArray[0][0] = Premier raccourci clavier (dans le format HotKeySet()) du 1er accélérateur
$aArray[0][1] = ID du contrôle associé au 1er accélérateur, tel que retourné par GUICtrlCreate...
$aArray[1][0] = Raccourci du 2e accélérateur
$aArray[1][1] = ID du contrôle associé au 2ème accélérateur
...
$aArray[n][0] = Raccourci du n-ième accélérateur
$aArray[n][1] = ID du contrôle associé au n-ième accélérateur
En passant à cette fonction un paramètre autre qu'un tableau aura pour effet d'annuler tous les accélérateurs pour un handle Windows donné.
#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> Example() Func Example() GUICreate("Custom MsgBox", 225, 80) GUICtrlCreateLabel("SVP, sélectionnez un bouton.", 10, 10) Local $idYes = GUICtrlCreateButton("Oui", 10, 50, 65, 25) Local $idNo = GUICtrlCreateButton("Non", 80, 50, 65, 25) Local $idExit = GUICtrlCreateButton("Quitter", 150, 50, 65, 25) ; Définit les GUIAccelerators pour les controlIDs des boutons, à savoir Ctrl+o et Ctrl+n Local $aAccelKeys[2][2] = [["^o", $idYes],["^n", $idNo]] GUISetAccelerators($aAccelKeys) GUISetState(@SW_SHOW) ; Affiche la GUI. Local $idMsg Do $idMsg = GUIGetMsg() Switch $idMsg Case $idYes ; Affiche si le bouton a été sélectionné ou la combinaison de touches Ctrl+o a été pressée MsgBox($MB_SYSTEMMODAL, "Bouton sélectionné", "Oui") Case $idNo ; Affiche si le bouton a été sélectionné ou la combinaison de touches Ctrl+n a été pressée MsgBox($MB_SYSTEMMODAL, "Bouton sélectionné", "Non") EndSwitch Until ($idMsg = $GUI_EVENT_CLOSE) Or ($idMsg = $idExit) if $idMsg = $GUI_EVENT_CLOSE Then MsgBox($MB_SYSTEMMODAL, "Bouton sélectionné", "Close") Else MsgBox($MB_SYSTEMMODAL, "Bouton sélectionné", "Quitter") EndIf GUIDelete() ; Supprime la GUI. EndFunc ;==>Example