Флаги состояния элемента меню
Функция GetMenuState возвращает флаги состояния для заданного элемента меню:
UINT WINAPI GetMenuState(HMENU hmenu, UINT idItem, UINT fuFlags);
Параметр hmenu определяет меню, для которого будет выполняться операция.
Параметр idItem определяет элемент меню, для которого будут получены флаги состояния. Интерпретация этого параметра зависит от значения параметра fuFlags.
Если в параметре fuFlags указан флаг MF_BYCOMMAND, параметр idItem определяет идентификатор строки меню, для которого выполняется операция. Если указан флаг MF_BYPOSITION, параметр idItem определяет порядковый номер этой строки.
Для временного меню старший байт возвращаемого функцией значения содержит количество элементов во временном меню, а младший - набор флагов, описывающих временное меню. Для меню верхнего уровня возвращаемое значение является набором флагов, описывающих указанный элемент меню:
Флаг | Описание |
MF_BITMAP | Для изображения строки меню используется графическое изображение bitmap |
MF_CHECKED | Строка меню отмечена галочкой"" |
MF_DISABLED | Строка меню находится в неактивном состоянии |
MF_ENABLED | Строка меню разблокирована и отображается в нормальном виде. Этому состоянию соответствует возвращаемое функцией GetMenuState значение, равное нулю |
MF_GRAYED | Строка меню отображается серым цветом и находится в неактивном состоянии. Такую строку нельзя выбрать |
MF_MENUBREAK | Для меню верхнего уровня элемент меню выводится с новой строки. Для временного меню элемент выводится в новом столбце |
MF_MENUBARBREAK | Аналогично MF_MENUBREAK, но дополнительно столбец отделен вертикальной линией |
MF_SEPARATOR | Строка является горизонтальной разделительной линией во временных меню |
MF_UNCHECKED | Строка не отмечена галочкой "" |
Если указанный элемент меню не существует, функция GetMenuState возвращает значение -1.