Condividi tramite


CMenu::GetMenuState

Restituisce lo stato della voce di menu specificata o il numero di voci in un menu di scelta rapida.

UINT GetMenuState( 
   UINT nID, 
   UINT nFlags  
) const;

Parametri

  • nID
    Specifica la voce di menu ID, come determinato da nFlags.

  • nFlags
    Specifica la natura nID. Può essere uno dei seguenti valori:

    • MF_BYCOMMAND specifica che il parametro fornisce l'id di comando voce di menu esistente. Impostazione predefinita.

    • MF_BYPOSITION specifica che il parametro fornisce la posizione della voce di menu esistente. Il primo elemento è la posizione 0.

Valore restituito

Il valore 0xFFFFFFFF se l'elemento specificato non esiste. Se il nId identifica un menu di scelta rapida, il byte più significativo contiene il numero di elementi nel menu di scelta rapida e il byte meno significativi contiene i flag del menu associati al menu di scelta rapida. In caso contrario il valore restituito è una maschera (OR booleana) dei valori dall'elenco (la maschera viene descritto lo stato della voce di menu che il nId identifica):

  • MF_CHECKED funge da passare dallo stato di esecuzione con MF_UNCHECKED per posizionare il segno di spunta predefinito accanto all'elemento. Quando l'applicazione fornisce le bitmap del segno di spunta (vedere la funzione membro SetMenuItemBitmaps ), il segno di spunta su" bitmap visualizzare.

  • MF_DISABLED disabilita la voce di menu in modo che non possa selezionare ma non di attenuare.

  • MF_ENABLED abilita la voce di menu in modo da poter selezionare e ripristinare il relativo stato attenuato. Si noti che il valore della costante è 0; un'applicazione non deve eseguire il test 0 per errore quando si utilizza questo valore.

  • MF_GRAYED disabilita la voce di menu in modo che non possa selezionare e la vengono visualizzati.

  • MF_MENUBARBREAK posiziona l'elemento in una nuova riga nei menu statici o in una nuova colonna nel menu di scelta rapida. La nuova colonna del menu di scelta rapida viene separata dalla colonna recente da una linea di divisione verticale.

  • MF_MENUBREAK posiziona l'elemento in una nuova riga nei menu statici o in una nuova colonna nel menu di scelta rapida. Alcuna linea di divisione viene inserita tra le colonne.

  • MF_SEPARATOR disegna una linea di divisione orizzontale. Può essere utilizzato solo in un menu di scelta rapida. Questa riga non può essere visualizzata in grigio, disabilitata, o essere evidenziata. Altri parametri vengono ignorati.

  • MF_UNCHECKED funge da passare dallo stato di esecuzione con MF_CHECKED per rimuovere un segno di spunta accanto all'elemento. Quando l'applicazione fornisce le bitmap del segno di spunta (vedere la funzione membro SetMenuItemBitmaps ), il segno di spunta out" bitmap da visualizzare. Si noti che il valore della costante è 0; un'applicazione non deve eseguire il test 0 per errore quando si utilizza questo valore.

Esempio

// CMainFrame::OnToggleTestMenuState() is a menu command handler for  
// "Toggle State" menu item (whose resource id is ID_MENU_TOGGLESTATE). 
// It toggles the checked or unchecked state of the "Toggle State" menu item.
// CMainFrame is a CFrameWnd-derived class. 
void CMainFrame::OnToggleTestMenuState() 
{
   // Get the popup menu which contains the "Toggle State" menu item.
   CMenu* mmenu = GetMenu();
   CMenu* submenu = mmenu->GetSubMenu(4);

   // Check the state of the "Toggle State" menu item. Check the menu item
   // if it is currently unchecked. Otherwise, uncheck the menu item 
   // if it is not currently checked.
   UINT state = submenu->GetMenuState(ID_MENU_TOGGLESTATE, MF_BYCOMMAND);
   ASSERT(state != 0xFFFFFFFF);

   if (state & MF_CHECKED)
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_UNCHECKED | MF_BYCOMMAND);
   else
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_CHECKED | MF_BYCOMMAND);
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CMenu

Grafico delle gerarchie

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem