C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 

Шаг 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(или) оператор. Эти значения имеют следующие значения:

  • MF_BYCOMMAND - Определяет, что параметр дает команду ID существующего пункта меню. Это - значение по умолчанию.
  • MF_BYPOSITION - Определяет, что параметр дает позицию существующего пункта меню. Первый элемент - в позиции 0.
  • MF_DISABLED - Отключает пункт меню так, чтобы он не мог быть выбран, но не потускнел.
  • MF_ENABLED - Допускает пункт меню так, чтобы он мог быть выбран и восстановлен из недоступного состояния.
  • MF_GRAYED - Отключает пункт меню так, чтобы он не мог быть выбран и потускнел.

Замечания
Разрешает, отключает, или тускнеет пункт меню. 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);

| |
Автор Каев Артем.
[AD]