Funzione GetMenuState (winuser.h)

Recupera i flag di menu associati alla voce di menu specificata. Se la voce di menu apre un sottomenu, questa funzione restituisce anche il numero di elementi nel sottomenu.

Nota La funzione GetMenuState è stata sostituita da GetMenuItemInfo. È comunque possibile usare GetMenuState, se non sono necessarie funzionalità estese di GetMenuItemInfo.
 

Sintassi

UINT GetMenuState(
  [in] HMENU hMenu,
  [in] UINT  uId,
  [in] UINT  uFlags
);

Parametri

[in] hMenu

Tipo: HMENU

Handle del menu che contiene la voce di menu i cui flag devono essere recuperati.

[in] uId

Tipo: UINT

Voce di menu per la quale devono essere recuperati i flag di menu, come determinato dal parametro uFlags .

[in] uFlags

Tipo: UINT

Indica come viene interpretato il parametro uId . Questo parametro può avere uno dei valori seguenti.

Valore Significato
MF_BYCOMMAND
0x0000000L
Indica che il parametro uId fornisce l'identificatore della voce di menu. Il flag MF_BYCOMMAND è l'impostazione predefinita se non viene specificato né il flag MF_BYCOMMANDné MF_BYPOSITION .
MF_BYPOSITION
0x0000400L
Indica che il parametro uId fornisce la posizione relativa in base zero della voce di menu.

Valore restituito

Tipo: UINT

Se l'elemento specificato non esiste, il valore restituito è -1.

Se la voce di menu apre un sottomenu, il byte di ordine basso del valore restituito contiene i flag di menu associati all'elemento e il byte di ordine elevato contiene il numero di elementi nel sottomenu aperto dall'elemento.

In caso contrario, il valore restituito è una maschera (OR bit per bit) dei flag di menu. Di seguito sono riportati i flag di menu associati alla voce di menu.

Codice/valore restituito Descrizione
MF_CHECKED
0x00000008L
Accanto all'elemento viene posizionato un segno di spunta (solo per menu a discesa, sottomenu e menu di scelta rapida).
MF_DISABLED
0x00000002L
L'elemento è disabilitato.
MF_GRAYED
0x00000001L
L'elemento è disabilitato e disattivato.
MF_HILITE
0x0000080L
L'elemento è evidenziato.
MF_MENUBARBREAK
0x00000020L
Si tratta dello stesso flag di MF_MENUBREAK , ad eccezione dei menu a discesa, dei sottomenu e dei menu di scelta rapida, in cui la nuova colonna è separata dalla colonna precedente in base a una linea verticale.
MF_MENUBREAK
0x0000040L
L'elemento viene posizionato su una nuova riga (per le barre dei menu) o in una nuova colonna (per menu a discesa, sottomenu e menu di scelta rapida) senza separare le colonne.
MF_OWNERDRAW
0x00000100L
L'elemento viene disegnato dal proprietario.
MF_POPUP
0x00000010L
La voce di menu è un sottomenu.
MF_SEPARATOR
0x00000800L
Esiste una linea di divisione orizzontale (solo per menu a discesa, sottomenu e menu di scelta rapida).

Commenti

È possibile testare un elemento per un valore di flag pari a MF_ENABLED, MF_STRING, MF_UNCHECKED o MF_UNHILITE. Tuttavia, poiché questi valori equivalgono a zero, è necessario usare un'espressione per testarli.

Contrassegno Espressione da testare per il flag
MF_ENABLED ! (Flag&(MF_DISABLED | MF_GRAYED))
MF_STRING ! (Flag&(MF_BITMAP | MF_OWNERDRAW))
MF_UNCHECKED ! (Flag&MF_CHECKED)
MF_UNHILITE ! (Flag&HILITE)
 

Esempio

Per un esempio, vedere Simulazione di caselle di controllo in un menu.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-menu-l1-1-2 (introdotto in Windows 10, versione 10.0.10240)

Vedi anche

Informazioni concettuali

GetMenu

GetMenuItemCount

GetMenuItemID

GetMenuItemInfo

Menu

Riferimento