WM_SYSKEYUP message

Publié dans la fenêtre avec le focus clavier lorsque l’utilisateur relâche une touche qui a été enfoncée alors que la touche ALT a été maintenue enfoncée. Elle se produit également lorsqu’aucune fenêtre n’a actuellement le focus clavier ; dans ce cas, le message WM_SYSKEYUP 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 .

Une fenêtre reçoit ce message via sa fonction WindowProc.

#define WM_SYSKEYUP                     0x0105

Paramètres

wParam

Code de clé virtuelle de la clé en cours de publication. Consultez Codes de clé virtuelle.

lParam

Le nombre de répétitions, le code d’analyse, l’indicateur de touche étendue, le code de contexte, l’indicateur d’état de touche 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 frappe est répétée automatiquement en raison du fait que l’utilisateur maintient la touche enfoncée. Le nombre de répétitions est toujours un pour un message WM_SYSKEYUP .
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 apparaissent sur un clavier amélioré à 101 ou 102 touches. La valeur est 1 s’il s’agit d’une clé étendue ; sinon, il est égal à zéro.
25-28 Réservé ; ne pas utiliser.
29 Code de contexte. La valeur est 1 si la touche ALT est en panne pendant la libération de la clé ; elle est égale à zéro si le message WM_SYSKEYUP est publié dans la fenêtre active, car aucune fenêtre n’a le focus clavier.
30 État de touche précédent. La valeur est toujours 1 pour un message WM_SYSKEYUP .
31 État de transition. La valeur est toujours 1 pour un message WM_SYSKEYUP .

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

Valeur retournée

Si une application traite ce message, elle doit retourner zéro.

Notes

La fonction DefWindowProc envoie un message WM_SYSCOMMAND à la fenêtre de niveau supérieur si la touche F10 ou la touche ALT a été libérée. Le paramètre wParam du message est défini sur SC_KEYMENU.

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.

Pour les claviers améliorés à 101 et 102 touches, les touches étendues sont les touches ALT et CTRL droites de la section principale du clavier ; les touches INSER, SUPPR, DÉBUT, FIN, PAGE HAUT, PAGE BAS et les flèches dans les groupes à gauche du pavé numérique ; ainsi que les touches de 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 IParam.

Pour les non-États-Unis claviers améliorés à 102 touches, la touche ALT droite est gérée comme une touche CTRL+ALT. Le tableau suivant montre la séquence de messages qui se produit lorsque l’utilisateur appuie et relâche cette touche.

Message Code de clé virtuelle
WM_KEYDOWN VK_CONTROL
WM_KEYDOWN VK_MENU
WM_KEYUP VK_CONTROL
WM_SYSKEYUP VK_MENU

Configuration requise

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 (include Windows.h)

Voir aussi