Sdílet prostřednictvím


CMenu::EnableMenuItem

Povolí, zakáže nebo ztlumí položky nabídky.

UINT EnableMenuItem(
   UINT nIDEnableItem,
   UINT nEnable 
);

Parametry

  • nIDEnableItem
    Určuje položku povoleno, dle nEnable .Tento parametr můžete určit položky místní nabídky, stejně jako standardní položky.

  • nEnable
    Určuje akci přijmout.Může být kombinace MF_DISABLED, MF_ENABLED , nebo MF_GRAYED, s MF_BYCOMMAND nebo MF_BYPOSITION.Tyto hodnoty lze kombinovat pomocí bitového operátoru OR.Tyto hodnoty mají následující význam:

    • 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.

    • 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ě.

    • MF_GRAYED zakáže položky nabídky tak, aby jej ztlumí a nemůže být vybrán.

Vrácená hodnota

Předchozí stav (MF_DISABLED, MF_ENABLED , nebo MF_GRAYED) nebo –1, pokud není platný.

Poznámky

CreateMenu, InsertMenu, ModifyMenu, a LoadMenuIndirect funkce členů můžete také nastavit stav (povoleno, zakázáno nebo šedě) položky nabídky.

Použití MF_BYPOSITION hodnotu vyžaduje aplikace používat správné CMenu .Pokud CMenu v nabídce panelu se používá, je ovlivněna nabídka nejvyšší úrovně (zboží v řádku nabídek).Nastavit stav položky v místní nebo vnořené rozbalovací nabídky podle umístění, musíte zadat aplikaci CMenu z rozbalovací nabídky.

Určuje, kdy aplikace MF_BYCOMMAND příznak, systém Windows zkontroluje všechny položky místní nabídky, které jsou podřízené CMenu ; proto, pokud existují duplicitní položky, použití CMenu panel nabídky je dostatečná.

Příklad

// The code fragment below shows how to disable (and gray out) the 
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of 
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are 
// needed, and CMenu::EnableMenuItem() will work as expected.

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CMenu

Diagram hierarchie

CMenu::GetMenuState

EnableMenuItem