WM_CONTEXTMENU message

Avertit une fenêtre que l’utilisateur souhaite qu’un menu contextuel apparaisse. L’utilisateur a peut-être cliqué sur le bouton droit de la souris (clic droit) dans la fenêtre, appuyé sur Maj+F10 ou appuyé sur la touche Applications (touche de menu contextuel) disponible sur certains claviers.

#define WM_CONTEXTMENU                  0x007B

Paramètres

wParam

Handle de la fenêtre dans laquelle l’utilisateur a cliqué avec le bouton droit sur la souris. Il peut s’agir d’une fenêtre enfant de la fenêtre qui reçoit le message. Pour plus d’informations sur le traitement de ce message, consultez la section Remarques.

lParam

Le mot d’ordre inférieur spécifie la position horizontale du curseur, en coordonnées d’écran, au moment du clic de la souris.

Le mot d’ordre supérieur spécifie la position verticale du curseur, en coordonnées d’écran, au moment du clic de la souris.

Valeur retournée

Pas de valeur de retour.

Notes

Une fenêtre peut traiter ce message en affichant un menu contextuel à l’aide des fonctions TrackPopupMenu ou TrackPopupMenuEx . Pour obtenir les positions horizontales et verticales, utilisez le code suivant.

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

Si une fenêtre n’affiche pas de menu contextuel, elle doit passer ce message à la fonction DefWindowProc . Si une fenêtre est une fenêtre enfant, DefWindowProc envoie le message au parent. Sinon, DefWindowProc affiche un menu contextuel par défaut si la position spécifiée se trouve dans le légende de la fenêtre.

DefWindowProc génère le message WM_CONTEXTMENU lorsqu’il traite le message WM_RBUTTONUP ou WM_NCRBUTTONUP ou lorsque l’utilisateur tape SHIFT+F10. Le message WM_CONTEXTMENU est également généré lorsque l’utilisateur appuie et relâche la touche VK_APPS .

Si le menu contextuel est généré à partir du clavier, par exemple, si l’utilisateur tape MAJ+F10, les coordonnées x et y ont la valeur -1 et l’application doit afficher le menu contextuel à l’emplacement de la sélection actuelle plutôt qu’à (xPos, yPos).

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

Référence

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

TrackPopupMenu

TrackPopupMenuEx

WM_NCRBUTTONUP

WM_RBUTTONUP

Conceptuel

Menus