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