Шаг 869 - CMenu::EnableMenuItem

UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );

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

Параметры
nIDEnableItem
Определяет пункт меню, который нужно разрешить, как определено nEnable. Этот параметр может определять пункты всплывающего меню также как стандартные пункты меню.
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);

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