WM_SYSKEYDOWN message

Affiché dans la fenêtre avec le focus clavier lorsque l’utilisateur appuie sur la touche F10 (qui active la barre de menus) ou maintient la touche ALT enfoncée, puis appuie sur une autre touche. Elle se produit également lorsqu’aucune fenêtre n’a actuellement le focus clavier ; dans ce cas, le message WM_SYSKEYDOWN est envoyé à la fenêtre active. La fenêtre qui reçoit le message peut faire la distinction entre ces deux contextes en vérifiant le code de contexte dans le paramètre lParam .

#define WM_SYSKEYDOWN                   0x0104

Paramètres

wParam

Code de la clé virtuelle de la touche sur laquelle vous appuyez. Consultez Codes de clé virtuelle.

lParam

Le nombre de répétitions, le code d’analyse, l’indicateur de clé étendue, le code de contexte, l’indicateur d’état de clé précédent et l’indicateur d’état de transition, comme indiqué dans le tableau suivant.

Bits Signification
0-15 Nombre de répétitions pour le message actuel. La valeur est le nombre de fois où la séquence de touches est répérée automatiquement en raison de la conservation de la touche par l’utilisateur. Si la séquence de touches est maintenue suffisamment longtemps, plusieurs messages sont envoyés. Toutefois, le nombre de répétitions n’est pas cumulatif.
16-23 Code d’analyse. La valeur dépend de l’OEM.
24 Indique si la touche est une touche étendue, telle que les touches Alt et Ctrl de droite qui s’affichent sur un clavier amélioré à 101 ou 102 touches. La valeur est 1 s’il s’agit d’une clé étendue ; sinon, c’est 0.
25-28 Réservés au; n’utilisez pas.
29 Code de contexte. La valeur est 1 si la touche ALT est enfoncée pendant que la touche est enfoncée ; il est 0 si le message WM_SYSKEYDOWN est publié dans la fenêtre active, car aucune fenêtre n’a le focus clavier.
30 État de clé précédent. La valeur est 1 si la clé est en panne avant l’envoi du message, ou elle est 0 si la clé est en place.
31 État de transition. La valeur est toujours 0 pour un message WM_SYSKEYDOWN .

Pour plus d’informations, consultez Indicateurs de message de séquence de touches.

Valeur retournée

Une application doit retourner zéro si elle traite ce message.

Notes

La fonction DefWindowProc examine la clé spécifiée et génère un message WM_SYSCOMMAND si la clé est TAB ou ENTRÉE.

Lorsque le code de contexte est égal à zéro, le message peut être transmis à la fonction TranslateAccelerator , qui le gère comme s’il s’agissait d’un message clé normal au lieu d’un message de clé de caractère. Cela permet d’utiliser des touches d’accélérateur avec la fenêtre active même si la fenêtre active n’a pas le focus clavier.

En raison de la répétition automatique, plusieurs messages WM_SYSKEYDOWN peuvent se produire avant l’envoi d’un message WM_SYSKEYUP . L’état de clé précédent (bit 30) peut être utilisé pour déterminer si le message WM_SYSKEYDOWN indique la première transition vers le bas ou une transition descendante répétée.

Pour les claviers améliorés à 101 et 102 touches, les touches améliorées sont les touches Alt et Ctrl droites de la section main du clavier ; les touches INS, DEL, HOME, END, PAGE HAUT, PAGE BAS et flèche dans les clusters à gauche du pavé numérique; ainsi que les touches division (/) et ENTRÉE dans le pavé numérique. D’autres claviers peuvent prendre en charge le bit de touche étendue dans le paramètre lParam .

Ce message est également envoyé chaque fois que l’utilisateur appuie sur la touche F10 sans la touche ALT.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Winuser.h (inclure Windows.h)

Voir aussi