CMenu::GetMenuState
Vrátí stav položky nabídky nebo počet položek v rozbalovací nabídce.
UINT GetMenuState(
UINT nID,
UINT nFlags
) const;
Parametry
nID
Určuje ID položky nabídky, dle nFlags .nFlags
Určuje druh nID .Může být jedna z následujících hodnot:MF_BYCOMMAND Určuje, že parametr poskytuje ID příkazu existující položky nabídky.Toto nastavení je výchozí.
MF_BYPOSITION Určuje, že parametr dává pozice existující položku nabídky.První položka je na pozici 0.
Vrácená hodnota
Hodnota 0xFFFFFFFF, pokud zadaná položka neexistuje.Pokud nId identifikuje rozbalovací nabídky vysoce bajt obsahuje počet položek v rozbalovací nabídce a nejnižší bajt obsahuje příznaky nabídky přidružené rozbalovací nabídky.Jinak vrácená hodnota je maska (Boolean nebo) ze seznamu hodnot (Tato maska popisuje stav nabídky položky nId identifikuje):
MF_CHECKED funguje jako přepínací s MF_UNCHECKED umístit výchozí zaškrtnutí položky.Při aplikaci dodává zaškrtněte políčko bitmapy (viz SetMenuItemBitmaps členské funkce), "v zaškrtnutí" rastrový obrázek zobrazen.
MF_DISABLED tak, že nelze vybrat, ale nikoli dim jej zakáže položky nabídky.
MF_ENABLEDUmožňuje položky nabídky, takže lze vybrat a obnoví ze stavu šedě.Všimněte si, že tato konstanta hodnotu 0. aplikace by neměly test proti 0 selhání při použití této hodnoty.
MF_GRAYED zakáže položky nabídky tak, aby jej ztlumí a nemůže být vybrán.
MF_MENUBARBREAK zboží umístí na nový řádek ve statické nabídky nebo v novém sloupci v rozbalovacích nabídkách.Nový sloupec rozbalovací nabídky budou ze staré sloupce odděleny svislé dělicí čáry.
MF_MENUBREAK zboží umístí na nový řádek ve statické nabídky nebo v novém sloupci v rozbalovacích nabídkách.Umístěna žádná dělící čára mezi sloupci.
MF_SEPARATOR nakreslí vodorovné dělicí čáry.Lze použít pouze v rozbalovací nabídce.Tento řádek nelze šedě, zakázán nebo zvýrazněny.Ostatní parametry ignorovány.
MF_UNCHECKED funguje jako přepínací s MF_CHECKED zaškrtnutí položky odebrat.Při použití dodává zaškrtněte políčko bitmapy (viz SetMenuItemBitmaps členské funkce), "zaškrtněte políčko Vypnout" rastrový obrázek zobrazen.Všimněte si, že tato konstanta hodnotu 0. aplikace by neměly test proti 0 selhání při použití této hodnoty.
Příklad
// 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);
}
Požadavky
Záhlaví: afxwin.h