Шаг 578 - CMenu::EnableMenuItem

UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );

Возвращаемое значение
Предыдущее состояние (MF_DISABLED, MF_ENABLED, или MF_GRAYED) или -1, если не допустимый.

Параметры
nEnable
Определяет действие, чтобы брать. Это может быть комбинация MF_DISABLED, MF_ENABLED, или MF_GRAYED, с MF_BYCOMMAND или MF_BYPOSITION. Эти значения могут быть объединены, используя поразрядный OR(или) оператор. Эти значения имеют следующие значения:

Замечания
Разрешает, отключает, или тускнеет пункт меню. CreateMenu, InsertMenu, ModifyMenu, и LoadMenuIndirect функции могут также устанавливать состояние (Разрешает, отключает, или потускнение) пункта меню.
Использование значения MF_BYPOSITION требует чтобы прикладная программа использовала правильный CMenu. Если CMenu меню строки используется, на верхнего уровня пункт меню (элемент в строке меню) эта функция воздействуют. Чтобы устанавливать состояние элемента в всплывающем или вкладываемых всплывающих меню позицией, прикладная программа должна определить всплывающее меню в CMenu Когда прикладная программа определяет флажок MF_BYCOMMAND, Windows проверяет все пункты меню которые являются зависимыми к CMenu, следовательно, если двойные пункты меню не присутствуют, использование CMenu строки меню достаточно.

Пример

// Кодовый фрагмент ниже показывает, как отключить 
// File\New пункт меню. 
// ОБРАТИТЕ ВНИМАНИЕ: m_bAutoMenuEnable установлен к FALSE в конструкторе 
// CMainFrame, так что  ON_UPDATE_COMMAND_UI или ON_COMMAND драйверы 
// необходимы, и CMenu::EnableMenuItem() будет работать как ожидается. 

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 20.01.2002