Udostępnij za pośrednictwem


CMenu::GetMenuState

Zwraca stan elementu menu określony lub liczba elementów w wyskakującym menu.

UINT GetMenuState(
   UINT nID,
   UINT nFlags 
) const;

Parametry

  • nID
    Określa identyfikator elementu menu, określone przez nFlags.

  • nFlags
    Określa charakter nID.Mogą to być jedna z następujących wartości:

    • MF_BYCOMMAND Określa, że parametr podaje identyfikator polecenia istniejący element menu.Domyślnie włączone.

    • MF_BYPOSITION Określa, że parametr podaje położenie istniejący element menu.Pierwszy element jest w położeniu 0.

Wartość zwracana

Wartość 0xFFFFFFFF, jeśli określony element nie istnieje.Jeśli nId identyfikuje wyskakujące menu znaczącym bajcie zawiera liczbę elementów w menu podręcznym, a bajcie flagi menu skojarzone z wyskakującego menu.W przeciwnym razie zwracana jest wartość maski (Boolean lub) wartości z poniższej listy (Ta maska opisuje stan menu Pozycja, która nId identyfikuje):

  • MF_CHECKED działa jako przełącznik z MF_UNCHECKED do domyślnego znacznika wyboru obok elementu.Gdy aplikacja dostaw bitmapy znacznik wyboru (zobacz SetMenuItemBitmaps Członkowskich funkcji), mapy bitowej "znacznik na" jest wyświetlany.

  • MF_DISABLED wyłącza element menu, tak że nie może być wybrany, ale nie dim.

  • MF_ENABLEDUmożliwia element menu, który można wybrać i przywraca go od jego stanu jako wygaszone.Należy zauważyć, że wartość ta stała jest równa 0; Aplikacja nie należy przetestować przed 0 w przypadku awarii podczas używania tej wartości.

  • MF_GRAYED wyłącza element menu, który nie może być wybrany i przyciemnia go.

  • MF_MENUBARBREAK umieszcza element w nowym wierszu statyczne menu lub nowej kolumny w wyskakujących menu.Nową kolumnę z wyskakującego menu będą rozdzielane z kolumny stare pionowa linia podziału.

  • MF_MENUBREAK umieszcza element w nowym wierszu statyczne menu lub nowej kolumny w wyskakujących menu.Nie wyraźnej linii jest umieszczony między kolumnami.

  • MF_SEPARATOR rysuje linię podziału.Można używane tylko w wyskakującym menu.Ten wiersz nie wygaszone, wyłączony lub wyróżnione.Inne parametry są ignorowane.

  • MF_UNCHECKED działa jako przełącznik z MF_CHECKED , aby usunąć znacznik wyboru obok elementu.Gdy aplikacja dostaw bitmapy znacznik wyboru (zobacz SetMenuItemBitmaps Członkowskich funkcji), mapy bitowej "znacznik wyboru off" jest wyświetlany.Należy zauważyć, że wartość ta stała jest równa 0; Aplikacja nie należy przetestować przed 0 w przypadku awarii podczas używania tej wartości.

Przykład

// 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);
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CMenu

Wykres hierarchii

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem