Mensagens WM_COMMAND

Enviado quando o usuário seleciona um item de comando em um menu, quando um controle envia uma mensagem de notificação para sua janela pai ou quando um pressionamento de tecla de acelerador é traduzido.

#define WM_COMMAND                      0x0111

Parâmetros

wParam

Para obter uma descrição desse parâmetro, consulte Comentários.

lParam

Para obter uma descrição desse parâmetro, consulte Comentários.

Valor retornado

Se um aplicativo processar essa mensagem, ela deverá retornar zero.

Exemplo

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;
}

Exemplo das Amostras do Windows Classic no GitHub.

Comentários

O uso dos parâmetros wParam e lParam é resumido aqui.

Código-fonte da Mensagem wParam (palavra alta) wParam (palavra baixa) lParam
Menu 0 Identificador de menu (IDM_*) 0
Acelerador 1 Identificador de acelerador (IDM_*) 0
Control Código de notificação definido pelo controle Identificador do controle Identificador da janela de controle

Se um aplicativo habilitar um separador de menu, o sistema enviará uma mensagem WM_COMMAND com a palavra baixa do parâmetro wParam definido como zero quando o usuário selecionar o separador.

Se um menu for definido com um valor MENUINFO.dwStyle de MNS_NOTIFYBYPOS, WM_MENUCOMMAND será enviado em vez de WM_COMMAND.

Aceleradores

Os pressionamentos de teclas de acelerador que selecionam itens no menu da janela são convertidos em mensagens WM_SYSCOMMAND.

Se ocorrer um pressionamento de teclas de acelerador que corresponda a um item de menu quando a janela que possui o menu for minimizada, nenhuma mensagem WM_COMMAND será enviada. No entanto, se ocorrer um pressionamento de teclas de acelerador que não corresponda a nenhum dos itens no menu da janela ou no menu da janela, uma mensagem WM_COMMAND será enviada, mesmo se a janela for minimizada.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos para desktop]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclui Windows.h)

Confira também

Referência

HIWORD

LOWORD

Conceitual

Menus