CMenu::EnableMenuItem
Włącza, wyłącza lub przyciemnia elementu menu.
UINT EnableMenuItem(
UINT nIDEnableItem,
UINT nEnable
);
Parametry
nIDEnableItem
Określa element menu ma być włączony, określone przez nEnable.Tego parametru można określić elementy menu wyskakującego, jak również elementy menu standardowe.nEnable
Określa akcję do wykonania.Może być kombinacją MF_DISABLED, MF_ENABLED, lub MF_GRAYED, z MF_BYCOMMAND lub MF_BYPOSITION.Wartości te mogą być połączone za pomocą operatora OR logiczną.Wartości te mają następujące znaczenie: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.
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.
MF_GRAYED wyłącza element menu, który nie może być wybrany i przyciemnia go.
Wartość zwracana
Poprzedni stan (MF_DISABLED, MF_ENABLED, lub MF_GRAYED) lub -1, jeśli nie jest prawidłowe.
Uwagi
CreateMenu, InsertMenu, ModifyMenu, i LoadMenuIndirect elementu menu funkcji elementów członkowskich można także ustawić stan (włączony, wyłączony lub wygaszone).
Za pomocą MF_BYPOSITION wartość wymaga aplikacji korzystanie z prawidłowego CMenu.Jeśli CMenu menu pasek jest używany, dotyczy element menu najwyższego poziomu (pozycja paska menu).Aby ustawić stan elementu w wyskakującym lub zagnieżdżonych wyskakującego menu Pozycja, należy określić aplikację CMenu z wyskakującego menu.
Gdy aplikacja Określa MF_BYCOMMAND Flaga, system Windows sprawdza wszystkie elementy wyskakujące menu, które są podrzędne w stosunku do CMenu; Dlatego, chyba że występują duplikaty elementów za pomocą CMenu menu pasek jest wystarczające.
Przykład
// 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);
Wymagania
Nagłówek: afxwin.h