Freigeben über


CMenu::EnableMenuItem

Aktiviert, deaktiviert oder blendet ein Menüelement ab.

UINT EnableMenuItem( 
   UINT nIDEnableItem, 
   UINT nEnable  
);

Parameter

  • nIDEnableItem
    Gibt das aktiviert werden an Menüelement, wie durch nEnable bestimmt wurde. Dieser Parameter kann Popupmenüelemente sowie Standardmenüelemente angeben.

  • nEnable
    Gibt die Aktion an. Es kann eine Kombination von MF_DISABLED, von MF_ENABLED oder von MF_GRAYED, mit MF_BYCOMMAND oder MF_BYPOSITION sein. Diese Werte können kombiniert werden, indem Sie den bitweisen Operator OR verwendet wird. Diese Werte haben folgende Bedeutung:

    • MF_BYCOMMAND gibt an, dass der Parameter der Befehls-ID des vorhandenen Menüelements gibt. Dies ist die Standardeinstellung.

    • MF_BYPOSITION gibt an, dass der Parameter die Position des vorhandenen Menüelements gibt. Der erste Punkt befindet sich an Position 0.

    • MF_DISABLED deaktiviert das Menüelement, sodass es nicht ausgewählt werden kann, sondern blendet es nicht ab.

    • MF_ENABLED aktiviert das Menüelement, sodass es ausgewählt werden kann und Wiederherstellung von seinem abgeblendeten Zustand.

    • MF_GRAYED deaktiviert das Menüelement, sodass es nicht ausgewählt werden kann und blendet es ab.

Rückgabewert

Vorheriger Zustand (MF_DISABLED, MF_ENABLED oder MF_GRAYED) oder 1, wenn ungültig.

Hinweise

Die CreateMenu, InsertMenu, ModifyMenu und LoadMenuIndirect-Memberfunktionen können den Zustand (Aktivieren, Deaktivieren oder abgeblendet) eines Menüelements festlegen.

Verwenden des Werts MF_BYPOSITION erfordert eine Anwendung, richtige CMenu zu verwenden. Wenn CMenu der Menüleiste verwendet wird, wird ein Menüelement (ein Element in der Menüleiste) betroffen. Um den Zustand eines Elements in einem Popup oder geschachteltes Popupmenü durch Position festzulegen, muss eine Anwendung CMenu des Popupmenüs angeben.

Wenn eine Anwendung das MF_BYCOMMAND-Flag angibt, überprüft Windows alle Popupmenüelemente, die zu CMenu untergeordnet sind; daher, außer wenn doppelte Menüelemente vorhanden sind, mit CMenu der Menüleiste ist ausreichend.

Beispiel

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

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CMenu-Klasse

Hierarchiediagramm

CMenu::GetMenuState

EnableMenuItem