Флаги состояния элемента меню
Функция 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.
Создание меню при помощи шаблона
Для создания меню вы можете использовать три метода.
Во-первых, можно описать шаблон меню в файле ресурсов приложения (аналогично шаблону диалоговой панели, но с использованием других операторов). Этот способ больше всего подходит для создания статических меню, не меняющихся или меняющихся не очень сильно в процессе работы приложения.
Во-вторых, можно создать меню "с нуля" при помощи специальных функций программного интерфейса Windows. Этот способ хорош для приложений, меняющих внешний вид меню, когда вы не можете создать заранее подходящий шаблон. Разумеется, второй метод пригоден и для создания статических меню.
В-третьих, можно подготовить шаблон меню непосредственно в оперативной памяти и создать меню на базе этого шаблона.
Дата добавления: 2016-07-22; просмотров: 1932;