Partilhar via


WM_MENUSELECT mensagem

Enviado para a janela do proprietário de um menu quando o usuário seleciona um item de menu.

#define WM_MENUSELECT                   0x011F

Parâmetros

wParam

A palavra de ordem baixa especifica o item de menu ou o índice do submenu. Se o item selecionado for um item de comando, esse parâmetro conterá o identificador do item de menu. Se o item selecionado abrir um menu suspenso ou submenu, esse parâmetro conterá o índice do menu suspenso ou submenu no menu principal e o parâmetro lParam conterá o identificador do menu principal; use a função GetSubMenu para obter o identificador de menu para o menu suspenso ou submenu.

A palavra de ordem alta especifica um ou mais sinalizadores de menu. Este parâmetro pode ser um ou mais dos seguintes valores.

Valor Meaning
MF_BITMAP
0x00000004L
O item exibe um bitmap.
MF_CHECKED
0x00000008L
O item está marcado.
MF_DISABLED
0x00000002L
O item está desativado.
MF_GRAYED
0x00000001L
O item está acinzentado.
MF_HILITE
0x00000080L
O item está em destaque.
MF_MOUSESELECT
0x00008000L
O item é selecionado com o mouse.
MF_OWNERDRAW
0x00000100L
Item é um item desenhado pelo proprietário.
MF_POPUP
0x00000010L
O item abre um menu suspenso ou submenu.
MF_SYSMENU
0x00002000L
O item está contido no menu da janela. O parâmetro lParam contém um identificador para o menu associado à mensagem.

lParam

Uma alça para o menu principal.

Valor de retorno

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

Observações

Essa mensagem é enviada para a janela do proprietário de um menu quando o usuário seleciona um item de menu em um menu aberto, geralmente por navegação com o mouse ou pelo teclado. Se o menu estiver fechado, essa mensagem não será enviada quando o usuário mover o mouse sobre um item de menu de nível superior. Esta mensagem é enviada somente depois que o menu é aberto pelo usuário clicando em um item de menu de nível superior ou pressionando a tecla ALT .

Importante

Quando um usuário clica em um item de menu ou pressiona Enter para invocar um item de menu selecionado, uma mensagem WM_COMMAND ou WM_MENUCOMMAND é enviada para a janela, dependendo do valor do membro dwStyle da estrutura MENUINFO para o menu. Use essas mensagens para executar uma ação quando o comando selecionado for invocado.

Se a palavra de alta ordem de wParam contiver 0xFFFF e o parâmetro lParam contiver NULL, o sistema fechou o menu.

Não use o valor -1 para a palavra de ordem alta de wParam, porque esse valor é especificado como (UINT)HIWORD(wParam). Mesmo que 0xFFFF possa ser interpretado como -1 em contextos assinados, se o valor for 0xFFFF, ele será interpretado como 0x0000FFFF, não -1, por causa do elenco para um UINT.

Por exemplo, este código verifica se há 0xFFFF, não -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;
}

Requerimentos

Requisito Valor
Cliente mínimo suportado
Windows 2000 Professional [apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado
Windows 2000 Server [apenas aplicações de ambiente de trabalho]
Header
Winuser.h (inclui Windows.h)

Consulte também

Referência

GetSubMenu

HIWORD

LOWORD

Conceptual

Aceleradores de teclado