Створення меню

Що таке меню. Меню - це список команд й опцій програми. У ряді випадків пункти меню можуть бути представлені растровими зображеннями. Вибрати елемент меню можна за допомогою миші, клавіатури або певних сполучень клавіш. У відповідь на це Windows пошле додатку повідомлення із вказівкою того, який елемент був задіяний.

Створення меню. Виберіть у меню View команду Resource View, клацніть двічі на файлі .гс, укажіть потрібний ресурс меню й виконаєте подвійного щиглика на ньому. вікно, Що З'явилося, майстра за замовчуванням буде містити готове меню, що при необхідності можна відредагувати за допомогою редактора меню. Альтернативний варіант - використання текстового редактора, у якому набирається опис меню мовою оголошення ресурсів. Але ми настійно рекомендуємо створювати меню за допомогою редактора меню.

Редактор ресурсів може прочитати опис меню з файлу сценарію ресурсів (розширення .гс) або з файлу скомпільованих ресурсів (розширення .res). Перший файл містить опису ресурсів у текстовому форматі. Якщо є заголовний файл із оголошеннями констант, використовуваних в описі меню, цей файл можна включити у файл ресурсів

На мал. 7.3 показано меню. Його можна відредагувати за допомогою редактора меню.

В опис меню можна включати різні стилі й атрибути. Наприклад, можна задати маркування обираних елементів спеціальними мітками, указати, що певний пункт меню споконвічно недоступний (виділений сірими кольорами) або що він є простій лінією-роздільником, вирівняти елементи меню по стовпчиках, призначити елементу меню атрибут довідки.

 

 

Рис. 7.3.Редактор ресурсу, використовуваний для створення нового меню

 

Меню й компілятор ресурсу меню. Застосувавши стандартні правила, Windows створить меню, що має подібні для всіх додатків зовнішній вигляд і принципи функціонування. Після компіляції буде утворений файл ресурсів з расширением.res. Цей файл буде використаний компоновщиком для зв'язування ресурсів з виконує файлом, що, додатка (ехе).

Опис найпростішого меню зрозуміти нескладно. От як виглядає файл сценарію ресурсу:

// Menu

IDC_LR4 MENU

BEGIN

POPUP "Обчислити"

BEGIN

MENUITEM "Варіант А", IDM_ABOUT1

MENUITEM "Варіант В", IDM_ABOUT2

END

END

Вивчаючи цей лiстинг, ви напевно помітили ряд ключових слів, використовуваних в описах меню, а саме MENU, POPUP, MENUITEM. Замість операторів BEGIN й END можна використати фігурні дужки ({}).

Ключові слова й опції редактора ресурсів. Опис меню має ім'я IDC_LR4. За ім'ям меню треба ключове слово MENU. У даному прикладі описуються спадаючі меню "Обчислити", що відкривається шляхом активізації. Елементи в рядку розташовуються в порядку їхнього опису. Якщо вони не містяться в одному рядку, то автоматично додається нова. У кожен сучасний момент часу на екрані може бути відкрито тільки одне підменю.

Для того щоб зв'язати з елементом меню клавішу швидкого виклику, у його описі перед відповідною буквою ставиться символ амiерсанда (&), причому в меню дана буква буде підкреслена. За допомогою даного символу можна вибирати потрібні пункти меню, використовуючи клавіатуру. Пункт меню можна також вибрати, помістивши покажчик миші на відповідний пункт і клацнувши лівою кнопкою миші. Коли спадаюче меню обрано, Windows негайно відкриває його на екрані, розташовуючи під відповідним пунктом у рядку меню. Кожне ключове слово MENUITEM позначає опис одного пункту з даного - меню.

Після назви команди в описі меню йде її ідентифікатор або константа, які втримуються в одному із заголовних файлів, що включають. Якщо ідентифікатор присутній, він може бути поміщений разом зі значенням, ідентифікованим у заголовному файлі, наприклад IDM_ABOUT1 й IDM_ABOUT2. Тут IDM - це префікс ідентифікаторів команд меню, а IDD - префікс ідентифікаторів діалогових вікон. Починати префікс із ID загальноприйнято, але не обов'язково. Важливо те, що кожний елемент меню має власний ідентифікатор. Майстер проекту, як видно із представленого нижче лiстинга, містить список таких ідентифікаторів в окремому файлі.

//{{NO_DEPENDENCIES}}

// Microsoft Visual C++ generated include file.

// Used by LR4.rc

//

#define IDC_MYICON 2

#define IDD_LR4_DIALOG 102

#define IDS_APP_TITLE 103

#define IDD_ABOUTBOX1 103

#define IDM_ABOUT 104

#define IDD_ABOUTBOX2 104

#define IDM_EXIT 105

#define IDI_LR4 107

#define IDI_SMALL 108

#define IDC_LR4 109

#define IDR_MAINFRAME 128

#define IDC_EDIT2 1006

#define IDC_EDIT3 1007

#define IDC_EDIT4 1008

#define IDC_SUM 1010

#define IDM_ABOUT1 32771

#define IDM_ABOUT2 32772

#define IDC_STATIC -1

// Next default values for new objects

//

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NO_MFC 1

#define _APS_NEXT_RESOURCE_VALUE 129

#define _APS_NEXT_COMMAND_VALUE 32773

#define _APS_NEXT_CONTROL_VALUE 1012

#define _APS_NEXT_SYMED_VALUE 110

#endif

#endif

У цьому лiстингi ви можете знайти числові значення, асоційовані з ID-зна-ченнями меню.