message WM_COMMAND

Envoyé lorsque l’utilisateur sélectionne un élément de commande dans un menu, lorsqu’un contrôle envoie un message de notification à sa fenêtre parente ou lorsqu’une frappe d’accélérateur est traduite.

#define WM_COMMAND                      0x0111

Paramètres

wParam

Pour obtenir une description de ce paramètre, consultez Remarques.

lParam

Pour obtenir une description de ce paramètre, consultez Remarques.

Valeur retournée

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

Exemple

BOOL AboutDlg (
    HWND hDlg, 
    UINT message, 
    WPARAM wParam, 
    LPARAM lParam)
{
    BOOL bRet = FALSE;
    
    switch (message) 
    {
        case WM_INITDIALOG:
            bRet = TRUE;
            break;

        case WM_COMMAND:
            if (wParam == IDOK ||
                wParam == IDCANCEL) 
            {
                EndDialog(hDlg, TRUE);
                bRet = TRUE;
            }
            break;
    }

    return bRet;
}

Exemple extrait de Windows exemples classiques sur GitHub.

Notes

Les paramètres wParam et lParam sont résumés ici.

Message Source wParam (mot élevé) wParam (mot bas) lParam
Menu 0 Identificateur de menu (IDM_*) 0
Accélérateur 1 Identificateur d’accélérateur (IDM_*) 0
Control Code de notification défini par le contrôle Identificateur de contrôle Gérer vers la fenêtre de contrôle

Si une application active un séparateur de menu, le système envoie un message WM_COMMAND avec le mot bas du paramètre wParam défini sur zéro lorsque l’utilisateur sélectionne le séparateur.

Si un menu est défini avec une valeur MENUINFO.dwStyle de MNS_NOTIFYBYPOS, WM_MENUCOMMAND est envoyé au lieu de WM_COMMAND.

Accélérateurs

Les touches d’accélérateur qui sélectionnent des éléments dans le menu fenêtre sont traduites en messages WM_SYSCOMMAND .

Si une touche d’accélérateur se produit qui correspond à un élément de menu lorsque la fenêtre propriétaire du menu est réduite, aucun message n’est envoyé WM_COMMAND . Toutefois, si une touche d’accélérateur se produit qui ne correspond à aucun des éléments du menu de la fenêtre ou dans le menu de la fenêtre, un message WM_COMMAND est envoyé, même si la fenêtre est réduite.

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

Voir aussi

Référence

HIWORD

LOWORD

Conceptuel

Menus