й буде виведений на екран при відображенні меню. p> Якщо замість імені меню вікна записано слово SEPARATOR (без лапок), на місці елемента меню з'являється горизонтальна лінія, застосовувана для розділення елементів підменю НЕ логічні групи.
Якщо в імені меню зустрічається символ "&", то наступний за амперсандом символ на екрані буде підкреслять одинарної рисою. Цей елемент меню можна буде викликати з клавіатури допомогою одночасного натискання клавіші Alt і підкресленого символу.
MenuID - ідентифікатор дії. Він може бути переданий функції вікна, що містить меню. Значення ідентифікатора визначається користувачем. Функція вікна залежно від отриманого MenuID виробляє певні дії.
Параметри же описують спосіб появи елемента на екрані. Можливі значення параметрів наведені в табл.2. p> Таким чином, елементи в меню можуть бути:
звичайними,
забороненими і
"сірими".
Для користувача звичайні та заборонені елементи виглядають однаково, а текст в "сірих" елементах надрукований сірим шрифтом. Але тільки звичайні елементи дозволяють користувачеві провести вибір. Заборонені і "сірі" елементи меню можуть бути тільки підсвічені, але з їх допомогою зробити вибір не можна.
Таблиця 2
Параметри, що описують елемент меню в файлі ресурсів
Прапор
Значення
CHECKED
Поруч з ім'ям елемента може відображатися невеликий значок, що говорить про те, що відповідний прапор встановлений
ENABLED
Елемент меню доступний
DISABLED
Елемент меню недоступний, але відображається як звичайний
GRAYED
Елемент меню недоступний і відображається сірим кольором
MENUBREAK
Горизонтальні меню розміщують наступні елементи в новій рядку, а вертикальні - у новому стовпці
MENUBARBREAK
Те ж, що і попереднє, але у випадку вертикального меню стовпці поділяються вертикальною лінією
Наприклад. Спробуємо створити опис невеликого меню. Горизонтальне меню (menubar) дозволить вибирати підменю "File", "Examples" і кінцевий елемент "Help". Підменю "File" міститиме елементи "Open" і "Exit", розділені горизонтальною лінією, а підменю "Examples" - Кілька кінцевих елементів. p> Нижче наведено текст скрипта для цього меню:
MyMenuMENU
{
POPUP "& File"
{
MENUITEM "& Open", 101
MENUITEM SEPARATOR
MENUITEM "E & xit", 102
}
POPUP "& Examle"
{
POPUP "Example1"
{
MENUITEM "1 & 1", 103
MENUITEM "1 & 2", 104
}
POPUP "Example2"
{
MENUITEM "2 & 1", 105
MENUITEM "2 & 2", 106
}
}
MENUITEM "& Help", 111
}
Слід звернути увагу, що ідентифікатори дії є тільки у MENUITEM. POPUP-меню ідентифікаторів НЕ містять.
Після цього необхідно, щоб меню стало доступним програмі. У інтегрованої середовищі це робиться так:
до проекту додається файл ресурсів (бажано збіг імен файлів ресурсу та програми).
в текст програми вноситься зміна - при визначенні класу вікна полю IpszMenuName структури типу WNDCLASS присвоюється покажчик на рядок, що містить ім'я меню. У даному випадку WndClass. lpszMenuName = "MyMenu";
проводиться перекомпіляція проекту.
акселлератор
Комбінації, які при натисканні автоматично вибирають відповідний їм елемент меню (навіть у тих випадках, коли воно не активно і не відображається), називаються акселераторами. Це назва (у перекладі з англійської акселератор означає прискорювач) вибрано досить вдало, бо в тих випадках, коли користувач запам'ятав їх і звик до їх використанню, введення команд здійснюється набагато швидше, ніж активізація меню і вибір цих команд.
Акселератори є одним з типів ресурсів, тобто для того, щоб використовувати акселератори, нам необхідно у файлі ресурсів створити таблицю акселераторів. Вона має наступний формат:
TableName ACCELERATORS
{Keyl, MenuIDl [, тип] [, параметр]
... ... p> Keyn, MenuIDn [, тип] [, параметр]
}
TableName - Це визначається користувачем ім'я таблиці акселераторів. p> Key - визначає клавішу або комбінацію клавіш, при натисненні якої відбувається введення команди.
Тип визначає, чи є клавіша стандартної (це значення застосовується за умовчанням) або віртуальною.
Параметр може приймати одне з наступних значень:...