Menus de proprietário-desenhado e a mensagem WM_MENUCHAR

Menus do que os menus de desenho proprietário podem especificar um mnemônico do menu inserindo um sublinhado próximas a um caractere in a Cadeia de caracteres do menu. Isso permite que o usuário selecionar o menu digitando alt e o caractere mnemônico do menu. Nos menus de desenho proprietário, no entanto, você não pode especificar um mneumônico de menu dessa maneira. Em vez disso, seu aplicativo deve processo a mensagem WM_MENUCHAR para fornecer menus de proprietário-desenhado com mnemônicos de menu.

A WM_MENUCHAR mensagem é enviada quando o usuário digita um mneumônico de menu que não corresponde a nenhum dos mnemônicos predefinidos do menu atual. O valor contido na wParam especifica o caractere ASCII que corresponde à chave o usuário pressionado com a tecla alt . A baixa-palavra de ordem lParam especifica o tipo de menu selecionado e pode ser dos seguintes valores:

O alto palavra de ordem lParam contém o identificador menu para o menu atual. A janela com os menus de desenho proprietário pode processar WM_MENUCHAR da seguinte forma:

caso WM_MENUCHAR:
      nIndex = determinar índice de item de menu para ser seleccionado a partir
               caractere que foi digitado e identificador para o atual
               no menu.
      retornar MAKELRESULT (nIndex, 2) 

Os dois no alto-palavra ordem da valor de retorno informa ao sistema que o baixo-ordem palavra o valor de retorno contém o índice baseado em zero do item de menu a ser selecionado.

As seguintes constantes (definido começando com Windows 95 e Windows NT versão 4.0) correspondem a valores de retorno possíveis da mensagem WM_MENUCHAR:

Constante Valor Significado
MNC_IGNORE 0 O sistema deve descartar o caractere o usuário pressionado e criar um bipe curto do alto-falante do sistema.
MNC_CLOSE 1 O sistema deve fechar o menu ativo.
MNC_EXECUTE 2 O sistema deve escolher o item especificado na baixa-palavra ordem da valor de retorno. O janela proprietária recebe uma mensagem WM_COMMAND.
MNC_SELECT 3 O sistema deve selecionar o item especificado na baixa-palavra ordem da valor de retorno.