Menu diverso da menu creati dal proprietario può specificare un tasto di scelta dal menu tramite l'inserimento di un carattere di sottolineatura accanto a un carattere nella stringa dal menu. Questo permette all'utente di selezionare il menu premendo alt e il carattere mnemonico dal menu. Nei menu creati dal proprietario, tuttavia, non è possibile specificare un tasto di scelta di menù in questo modo. Invece, l'applicazione deve elaborare il messaggio WM_MENUCHAR per fornire menu creati dal proprietario con tasti di scelta rapida dal menu.
Il messaggio WM_MENUCHAR viene inviato quando l'utente digita un tasto di scelta di menù che non corrisponde a nessuna dei tasti di scelta rapida predefiniti di menu corrente. Il valore contenuto in wParam specifica il carattere ASCII corrispondente alla chiave che l'utente ha premuto con il tasto alt . La parola di ordine inferiore di lParam specifica il tipo di menu selezionata e può essere su dei seguenti valori:
La parola di ordine superiore di lParam contiene l'handle di menù per menu corrente. La finestra con i menu creati dal proprietario in grado di elaborare WM_MENUCHAR come segue:
caso WM_MENUCHAR:
nIndex = indice Determine della voce di menu per essere selezionati da
carattere digitato e maniglia alla corrente
nel menu.
return MAKELRESULT (nIndex, 2)
I due nella parola significativi del valore restituito informa il sistema che la parola di ordine inferiore del valore restituito contiene l'indice della voce di menu a scelta.
Le seguenti costanti (definito a partire con la versione di Windows 95 e Windows NT 4.0) corrispondono ai possibili valori restituiti dal messaggio di WM_MENUCHAR:
| Costante | Valore | Significato |
|---|---|---|
| MNC_IGNORE | 0 | Il sistema dovrebbe scartare il personaggio che l'utente preme e creare un breve segnale acustico sull'altoparlante sistema. |
| MNC_CLOSE | 1 | Il sistema dovrebbe chiudere il menu attivo. |
| MNC_EXECUTE | 2 | Il sistema dovrebbe scegliere l'elemento specificato nella parola significativi del valore restituito. La finestra proprietario riceve un messaggio WM_COMMAND. |
| MNC_SELECT | 3 | Il sistema dovrebbe selezionare l'elemento specificato nella parola significativi del valore restituito. |