À propos des contrôles de touche d’accès rapide

Un contrôle de touche d’accès rapide est une fenêtre qui permet à l’utilisateur d’entrer une combinaison de séquences de touches à utiliser comme touche d’accès rapide. Une touche d’accès rapide est une combinaison de touches sur laquelle l’utilisateur peut appuyer pour effectuer une action rapidement. Par exemple, un utilisateur peut créer une touche d’accès rapide qui active une fenêtre donnée et la place en haut de l’ordre de plan. Le contrôle de touche rapide affiche les choix de l’utilisateur et s’assure que l’utilisateur sélectionne une combinaison de touches valide. La capture d’écran suivante montre comment un contrôle de touche d’accès rapide apparaît dans une boîte de dialogue lorsque l’utilisateur appuie sur la touche Alt.

capture d’écran d’une boîte de dialogue qui contient un contrôle de touche d’accès rapide

Utilisation des contrôles de touche d’accès rapide

Lorsque l’utilisateur entre une combinaison de touches à utiliser comme touche d’accès rapide, les noms des clés s’affichent dans le contrôle de touches d’accès rapide. Une combinaison de touches peut se composer d’une touche de modification (comme Ctrl, Alt ou Maj) et d’une touche d’accompagnement (par exemple, une touche de caractère, une touche de direction, une touche de fonction, etc.).

Une fois que l’utilisateur a choisi une combinaison de touches, l’application récupère la combinaison de touches à partir du contrôle de touche rapide et l’utilise pour configurer une clé d’accès rapide dans le système. Les informations récupérées à partir du contrôle de touche rapide incluent un indicateur indiquant la clé de modification et le code de clé virtuelle de la clé associée.

L’application peut utiliser les informations fournies par un contrôle de touche d’accès rapide pour configurer une clé d’accès rapide globale ou une clé d’accès rapide spécifique au thread. Une touche d’accès rapide globale est associée à une fenêtre particulière ; elle permet à l’utilisateur d’activer la fenêtre à partir de n’importe quelle partie du système. Une application définit une clé d’accès rapide globale à l’aide du message WM_SETHOTKEY . Chaque fois que l’utilisateur appuie sur une touche d’accès rapide globale, la fenêtre spécifiée dans WM_SETHOTKEY reçoit un message WM_SYSCOMMAND qui spécifie la valeur SC_HOTKEY . Ce message active la fenêtre qui le reçoit. La touche d’accès rapide reste valide jusqu’à ce que l’application qui a appelé WM_SETHOTKEY se ferme.

Une clé d’accès rapide spécifique au thread génère un message WM_HOTKEY qui est publié au début d’un thread particulier afin qu’il soit supprimé par l’itération suivante de la boucle de message. Une application définit une clé d’accès rapide spécifique au thread à l’aide de la fonction RegisterHotKey .

Messages de contrôle de la touche d’accès rapide

Après avoir créé un contrôle de touche d’accès rapide, une application interagit avec celui-ci à l’aide de trois messages : HKM_SETRULES, HKM_SETHOTKEY et HKM_GETHOTKEY.

Une application peut envoyer le message HKM_SETRULES pour spécifier un ensemble de combinaisons de touches Ctrl, Alt et Maj considérées comme non valides. Si l’application spécifie une combinaison de touches non valide, elle doit également spécifier une combinaison de modificateurs par défaut à utiliser lorsque l’utilisateur sélectionne la combinaison non valide. Lorsque l’utilisateur entre la combinaison non valide, le système effectue une opération LOGIQUE OR sur la combinaison non valide et la combinaison par défaut. Le résultat est considéré comme une combinaison valide ; il est converti en chaîne et affiché dans le contrôle .

Le message HKM_SETHOTKEY permet à une application de définir la combinaison de touches d’accès rapide pour un contrôle de touche d’accès rapide. Ce message est également généralement utilisé lors de la création du contrôle de touche d’accès rapide.

Les applications utilisent le message HKM_GETHOTKEY pour récupérer le code de clé virtuelle et les indicateurs de modification de la touche d’accès rapide choisie par l’utilisateur.

Notifications de contrôle par touche d’accès rapide

Le contrôle de touche d’accès rapide n’envoie aucun code de notification via le message WM_NOTIFY . Toutefois, il envoie la notification EN_CHANGE via le message WM_COMMAND lorsque l’utilisateur modifie le contenu du contrôle.

Traitement des messages par clé d’accès rapide par défaut

Cette section décrit les messages de fenêtre gérés par la procédure de fenêtre pour la classe de fenêtre HOTKEY_CLASS prédéfinie utilisée avec les contrôles de touche d’accès rapide.

Message Traitement effectué
WM_CHAR Récupère le code de la clé virtuelle.
WM_CREATE Initialise le contrôle de touche d’accès rapide, efface toutes les règles de touches d’accès rapide et utilise la police système.
WM_ERASEBKGND Masque l’insertion, appelle la fonction DefWindowProc et affiche à nouveau le signe d’insertion.
WM_GETDLGCODE Retourne une combinaison des valeurs DLGC_WANTCHARS et DLGC_WANTARROWS .
WM_GETFONT Récupère la police.
WM_KEYDOWN Appelle la fonction DefWindowProc si la clé est ENTER, TAB, SPACE BAR, DEL, ESC ou BACKSPACE. Si la touche est Maj, Ctrl ou Alt, elle vérifie si la combinaison est valide et, si elle l’est, définit la touche d’accès rapide à l’aide de la combinaison. Toutes les autres clés sont définies en tant que touches d’accès rapide sans que leur validité soit préalablement vérifiée.
WM_KEYUP Récupère le code de la clé virtuelle.
WM_KILLFOCUS Détruit le caret.
WM_LBUTTONDOWN Définit le focus sur la fenêtre.
WM_NCCREATE Définit le style de fenêtre WS_EX_CLIENTEDGE .
WM_PAINT Peint le contrôle de touche d’accès rapide.
WM_SETFOCUS Crée et affiche l’insertion.
WM_SETFONT Définit la police.
WM_SYSCHAR Récupère le code de la clé virtuelle.
WM_SYSKEYDOWN Appelle la fonction DefWindowProc si la clé est ENTER, TAB, SPACE BAR, DEL, ESC ou BACKSPACE. Si la touche est Maj, Ctrl ou Alt, elle vérifie si la combinaison est valide et, si elle l’est, définit la touche d’accès rapide à l’aide de la combinaison. Toutes les autres clés sont définies en tant que touches d’accès rapide sans que leur validité soit préalablement vérifiée.
WM_SYSKEYUP Récupère le code de la clé virtuelle.