Functions > GUI > GUISetParameters >


GUISetAccelerators

D�finit la table des acc�l�rateurs � utiliser dans une GUI.

GUISetAccelerators ( accelerators [, winhandle] )

Param�tres

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).

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0.

Remarques

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�.

En relation

GUICreate, HotKeySet

Exemple

#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