Функция EnableMenuItem включает, отключает или окрашивает в серый цвет (делает недоступным) заданный пункт меню.
Синтаксис
BOOL EnableMenuItem( HMENU hMenu, UINT uIDEnableItem, UINT uEnable ); |
Параметры
hMenu
[in] Дескриптор меню.uIDEnableItem
[in] Определяет пункт меню, который будет включен, выключен или сделан недоступным, как обусловлено параметром uEnable. Этот параметр устанавливает пункт в строке меню, меню, или подменю.uEnable
[in] Управляет интерпретацией параметра uIDEnableItem и указывает включен, заблокирован или недоступен пункт меню. Этот параметр должен быть комбинацией или флажков MF_BYCOMMAND или MF_BYPOSITION и MF_ENABLED, MF_DISABLED, или MF_GRAYED.
Значение |
Предназначение |
MF_BYCOMMAND |
Указывает, что uIDEnableItem дает идентификатор пункта меню. Если ни флажок MF_BYCOMMAND, ни флажок MF_BYPOSITION не установлен, флажок MF_BYCOMMAND является флажком, заданным по умолчанию. |
MF_BYPOSITION |
Указывает, что uIDEnableItem дает отсчитываемую от нуля относительную позицию пункта меню. |
MF_DISABLED |
Указывает, что пункт меню заблокирован, а не недоступный, так что он не может быть выбран. |
MF_ENABLED |
Указывает, что пункт меню включен и восстановлен из недоступного состояния так, чтобы он может быть выбран. |
MF_GRAYED |
Указывает, что пункт меню заблокирован и недоступен так, чтобы его невозможно выбрать. |
Возвращаемые значения
Возвращаемое значение определяет предшествующее состояние пункта меню (он или MF_DISABLED, MF_ENABLED или MF_GRAYED). Если пункт меню не существует, возвращаемое значение равно - (минус) 1.
Замечания
Прикладная программа должна использовать флажок MF_BYPOSITION, чтобы определить правильный дескриптор меню. Если дескриптор определен для строки меню, то затрагивается пункт меню верхнего уровня (пункт в строке меню). Чтобы установить состояние пункта "выпадающего" меню или позицию подменю, программа должна определить дескриптор "выпадающего" меню или подменю.
Когда приложение определяет флажок MF_BYCOMMAND, система проверяет все пункты, которые открывают подменю в меню, идентифицированные при помощи определения дескриптора меню. Следовательно, если в меню нет двойных пунктов, достаточно определения дескриптора строки меню.
Функции InsertMenu, InsertMenuItem, LoadMenuIndirect, ModifyMenu и SetMenuItemInfo также могут устанавливать состояние (включения, блокировки или недоступности) пунктов меню.
Когда Вы изменяете меню окна, строка меню немедленно не модифицируется. Чтобы заставить ее обновиться, вызовите функцию DrawMenuBar.
Смотри также
Краткий обзор Меню, DrawMenuBar, GetMenuItemID, InsertMenu, InsertMenuItem, LoadMenuIndirect, ModifyMenu, SetMenuItemInfo, WM_SYSCOMMAND
Размещение и совместимость EnableMenuItem |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |