Compartilhar via


WM_MENUSELECT mensagem

Enviado para a janela de 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 de 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 do submenu no menu principal e o parâmetro lParam conterá o identificador para o menu principal; use a função GetSubMenu para obter o identificador de menu para o menu suspenso ou submenu.

A palavra de alta ordem especifica um ou mais sinalizadores de menu. Esse parâmetro pode ser um ou mais dos valores a seguir.

Value Meaning
MF_BITMAP
0x00000004L
O item exibe um bitmap.
MF_CHECKED
0x00000008L
O item está marcado.
MF_DISABLED
0x00000002L
O item está desabilitado.
MF_GRAYED
0x00000001L
O item está esmaecido.
MF_HILITE
0x00000080L
O item está realçado.
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

Um identificador para o menu principal.

Valor de retorno

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

Observações

Essa mensagem é enviada para a janela de proprietário de um menu quando o usuário seleciona um item de menu em um menu aberto, normalmente por navegação por mouse ou 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. Essa 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 do menu. Use essas mensagens para executar uma ação quando o comando selecionado for invocado.

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

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

Por exemplo, esse 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;
}

Requirements

Requirement Value
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Header
Winuser.h (inclua Windows.h)

Consulte também

Referência

GetSubMenu

HIWORD

LOWORD

Conceitual

Aceleradores de teclado