Partager via


message WM_MENUSELECT

Envoyé à la fenêtre propriétaire d’un menu lorsque l’utilisateur sélectionne un élément de menu.

#define WM_MENUSELECT                   0x011F

Paramètres

wParam

Le mot de bas ordre spécifie l’élément de menu ou l’index de sous-menu. Si l’élément sélectionné est un élément de commande, ce paramètre contient l’identificateur de l’élément de menu. Si l’élément sélectionné ouvre un menu déroulant ou un sous-menu, ce paramètre contient l’index du menu déroulant ou du sous-menu dans le menu principal, et le paramètre lParam contient le handle du menu principal ; utilisez la fonction GetSubMenu pour obtenir la poignée de menu dans le menu déroulant ou le sous-menu.

Le mot à ordre élevé spécifie un ou plusieurs indicateurs de menu. Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Meaning
MF_BITMAP
0x00000004L
L’élément affiche une bitmap.
MF_CHECKED
0x0000008L
L’élément est activé.
MF_DISABLED
0x00000002L
L’élément est désactivé.
MF_GRAYED
0x00000001L
L’élément est grisé.
MF_HILITE
0x00000080L
L’élément est mis en surbrillance.
MF_MOUSESELECT
0x00008000L
L’élément est sélectionné avec la souris.
MF_OWNERDRAW
0x00000100L
L’élément est un élément dessiné par le propriétaire.
MF_POPUP
0x00000010L
L’élément ouvre un menu déroulant ou un sous-menu.
MF_SYSMENU
0x00002000L
L’élément est contenu dans le menu de la fenêtre. Le paramètre lParam contient un handle dans le menu associé au message.

lParam

Handle du menu principal.

Valeur retournée

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

Remarques

Ce message est envoyé à la fenêtre propriétaire d’un menu lorsque l’utilisateur sélectionne un élément de menu dans un menu ouvert, généralement par navigation avec souris ou clavier. Si le menu est fermé, ce message n’est pas envoyé lorsque l’utilisateur déplace la souris sur un élément de menu de niveau supérieur. Ce message est envoyé uniquement après l’ouverture du menu par l’utilisateur en cliquant sur un élément de menu de niveau supérieur ou en appuyant sur la touche Alt .

Important

Lorsqu’un utilisateur clique sur un élément de menu ou appuie sur Entrée pour appeler un élément de menu sélectionné, un message WM_COMMAND ou WM_MENUCOMMAND est envoyé à la fenêtre, en fonction de la valeur du membre dwStyle de la structure MENUINFO du menu. Utilisez ces messages pour effectuer une action lorsque la commande sélectionnée est appelée.

Si le mot de classement élevé de wParam contient 0xFFFF et que le paramètre lParam contient NULL, le système a fermé le menu.

N’utilisez pas la valeur -1 pour le mot de classement élevé de wParam, car cette valeur est spécifiée en tant que (UINT) HIWORD(wParam). Même si 0xFFFF peut être interprétée comme -1 dans des contextes signés, si la valeur est 0xFFFF, elle serait interprétée comme 0x0000FFFF, et non -1, en raison de la conversion en uiNT.

Par exemple, ce code vérifie 0xFFFF, et non -1 :

case WM_MENUSELECT:
{
    UINT menuItem = LOWORD(wParam);
    UINT flags = HIWORD(wParam);
    HMENU hMenu = (HMENU)lParam;

    // Check for 0xFFFF, not -1.
    if (flags == 0xFFFF && hMenu == NULL) {
        // No menu item selected (menu closed).
        // ...
    }
    break;
}

Spécifications

Requirement 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]
Header
Winuser.h (include Windows.h)

Voir aussi

Référence

GetSubMenu

HIWORD

LOWORD

Conceptuel

Raccourcis clavier