mf_ByCommand: Команда меню указана с помощью идентификатора;
mf_ByPosition: Команда меню указана номером, где первой команде меню соответствует 0;
mf_Checked: Рядом с командой отображается специальный символ (маркер);
mf_Disabled: Команда меню отменена;
mf_Enabled: Команда меню разрешена;
mf_Grayed: Команда меню неактивна;
mf_Help: Команда меню - элемент справочной системы;
mf_Hilite: Выделение цветом команды меню;
mf_MenuBarBreak: Меню помещается в отдельную колонку, отделенную вертикальной чертой;
mf_MenuBreak: Меню помещается в отдельную колонку;
mf_MouseSelect: Команда была выбрана манипулятором "мышь";
mf_OwnerDraw: Команда меню отображается программой-владельцем меню;
mf_Popup: Новая команда меню включает подменю;
mf_Separator. Отображается горизонтальная разделительная черта;
mf_String: Новая команда меню - строка;
mf _SysMenu: Команда меню входит в системое меню;
mf_Unchecked: Удаляет специальный символ рядом с названием команды меню;
mf_Unhilite: Прекращается выделение цветом команды меню.
Примечание: Использование ряда флагов будет рассмотрено ниже.
Установка и удаление отметки команды меню
Для того чтобы отметить, что пользователь выбрал команду меню, можно отобразить специальный символ рядом с названием этой команды. Чтобы отметить команду меню, используется функция CheckMenuItem:
CheckMenultem(MyMenu, idm_XXX, mf_Checked);
а для того, чтобы удалить отметку, используется следующий вызов функции:
CheckMenultem(MyMenu, idm_XXX, mf_UnChecked);
Добавление команд к меню
Имеется возможность добавления новых команд меню в конец и в любое место меню. Для этого используются функции AppendMenu и InsertMenu соответственно.
Ниже приведен пример добавления команды в конец существующего меню:
AppendMenu(MyMenu, mf_Enabled, idm_XXX, 'Newltem');
Для добавления новой команды в указанное место существующего меню используется следующий вызов функции InsertMenu:
lnsertMenu(MyMenu, idm_YYY, mf_ByCommand OR mf_Enabled, idm_XXX, 'Newltem');
Данный вызов функции вставляет команду idm_XXX перед существующей командой меню idm_YYY.
В следующем примере новая команда idm_XXX вставляется таким образом, что она становится третьей командой в меню MyMenu:
lnsertMenu(MyMenu, 2, mf_ByPos!tion OR mf_Grayed, idm_XXX,'Newltem');
Напомним, что первая команда меню имеет номер 0, вторая - 1 и т.д.
Изменение существующего меню
С помощью функции ModifyMenu можно изменять как существующие меню, так и команды меню, Ниже показано, как с помощью функции ModifyMenu изменить команду существующего меню idm_XXX на команду idm_YYY:
ModifyMenu(MyMenu, idm_XXX, mf_ByCommand, idm_YYY, 'Newltem');
Эта функция указывает ядру Windows на необходимость изменения существующей команды меню на новую команду. Третий, четвертый и пятый параметры указывают атрибуты новой команды.
Удаление команды из меню
С помощью функции DeleteMenu можно удалить любую команду из существующего меню. Ниже показано использование этой функции:
DeleteMenufMyMenu, 1, mf_ByPosltion);
В этом примере из существующего меню, определяемого ссылкой MyMenu, удаляется вторая команда. Таким образом, третья команда становится второй и т.д. Также можно удалить команду меню, указав ее идентификатор:
DeleteMenu(MuMenu, ldm_XXX, mf_ByCommand);
Перерисовка меню
После выполнения операций, связанных с изменением меню, требуется перерисовка меню. Для выполения этой операции служит функция DrawMenuBar. В качестве параметра этой функции передается ссылка на окно, которому принадлежит меню.
Использование растровых графических изображений в меню
Возможно использование растровых графических изображений в качестве команд меню. Это можно сделать двумя способами:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.