С помощью редактора меню не только легче создать пример ме-
ню, но и проверить его при создании. Редактор меню дает также
другие преимущества: он обеспечивает удобную работу с идентифика-
торами меню и даже записывает идентификаторы в отдельном файле,
если вы это укажете.
Создание меню
Чтобы создать меню, сделайте следующее:
1. Убедитесь, что вы уже открыли проект. Если вы работаете с
примерами ресурсов каждой главы, откройте файл MYPROJ.RC
(информацию об открытии проекта можно найти в Главе 3).
2. Открыв проект, выберите команду Resource¦Open (Ре-
сурс¦Открытие).
3. Пакет разработчика ресурсов выводит диалоговое окно New
Resource (Новый ресурс). Прокрутите список Resource Type
(Тип ресурса), пока вы не увидите MENU, щелкните на этом
элементе кнопкой "мыши", затем выберите кнопку OK.
Пакет разработчика ресурсов добавляет в окно проекта но-
вый ресурс, затем выводит в редакторе меню новое меню с
подсвеченным первым оператором в схеме меню POPUP
"Pop-up".
4. Чтобы переименовать начальный оператор меню с Pop-up на
Widgets, наберите в диалоговом окне в текстовом поле Item
text (Текст элемента) &Widgets. Затем нажмите клавишу
Enter.
Обратите внимание, что W в Widgets подчеркивается. Это ука-
зывает, что данное меню выводится, если вы нажимаете для выбора
команды Widgets W.
Добавление команд к меню Widgets
Далее нужно добавить команды к меню, выводимому командой
Widgets. Для этого:
1. Переименуйте первый элемент меню и добавьте текст, указы-
вающий клавишу акселератора, нажмите Ctrl+стрелка вниз,
подсветите вторую строку схемы меню (MENUITEM "Item"),
затем наберите &List\tCtrl+L в текстовом поле Item Text.
2. С помощью клавиши Tab переместитесь на следующее поле -
Item ID (Идентификатор элемента) - и наберите wmnu_List,
чтобы задать идентификатор для данной команды (он будет
позднее использоваться редактором акселератора для созда-
ния акселератора команды - Ctrl+L).
Пакет разработчика ресурсов спрашивает у вас, хотите ли
вы создать новый идентификатор. Чтобы сделать это, нажми-
те клавишу Enter, затем в диалоговом окне Mew Identifier
(Новый идентификатор) нажмите клавишу Enter, чтобы было
воспринято текущее выводимое значение.
Здесь вы можете обычным образом открыть редактор акселе-
ратора и создать клавишу акселератора Ctrl+L. Обычно по-
лезно при создании меню задавать клавиши акселераторов,
поскольку для создания соответствующих идентификаторов в
командах меню требуются идентификаторы. Однако, поскольку
акселераторы мы еще не обсуждали, эту часть демонстраци-
онного примера отложим до следующей главы.
3. С помощью подсвеченной второй строки схемы меню (команда
List) добавьте новую команду меню, нажав клавишу Ins или
выбрав команду Menu¦New Item (Меню¦Новый элемент).
4. В текстовом поле Item Text (Текст элемента) для изменения
текста на новый элемент меню наберите &Add..\tCtrl+A.
(Многоточие после команды Add указывает, что данная ко-
манда выводит диалоговое окно.)
5. Поскольку вы указали, что клавиши Ctrl+A должны быть ак-
селератором данного элемента меню, переместитесь в по-
мощью клавиши табуляции в поле Item ID (Идентификатор
элемента) и наберите wmnu_Add, после чего нажмите клавишу
Enter. На подсказку отвечайте также, как в случае иденти-
фикатор wmnu_List.
6. В подсвеченной третьей строке схемы меню (команда Add)
нажмите клавиши Ctrl+P, затем измените текст на A&rrange
List..., чтобы добавить в меню новую команду вывода
всплывающего окна Arrange List.
Поскольку вы хотите, чтобы при выборе пользователем ко-
манды Arrange List выводились два параметра, вам нужно
определить Arrange List, как команду вывода всплывающего
меню, а не как еще один элемент меню.
7. Подсветите строку, определяющую команду Add, затем нажми-
те клавиши Ctrl+S, чтобы поместить после команды раздели-
тель.
Добавление команд в меню Arrange List
Чтобы определить команды Ascending и Descending во всплываю-
щем меню Arrange List, сделайте следующее:
1. Измените элемент меню "Item" на "&Ascending" (запись
"Item" создается пакетом разработчика ресурсов при созда-
нии меню Arrange List).
2. Чтобы добавить новый элемент меню после "&Ascending",
нажмите клавишу Ins, затем переименуйте его в
"&Descending".
3. Если хотите, можете указать для каждой из этих команд
клавиши акселераторов, как это делается для команд List и
Add. Если вы указываете акселераторы, определите также
идентификаторы для команд.
Проверка меню
Проверьте меню, щелкнув кнопкой "мыши" на команде Widgets в
области проверки меню и раскрывая команду Arrange List. Вы должны
получить картинку, аналогичную Рис. 5.11.
Выбрав команду Menu¦Check Dupolicates (Меню¦Проверка дубли-
рования идентификаторов) вы можете также проверить дублирующиеся
значения.
- Если таких идентификаторов нет, вы получите сообщение: "No
duplicates founds" ("Дублируемых идентификаторов не найде-
но").
- Если имеется дублируемый идентификатор, вы получите сооб-
щение "Duplicate command found" ("Найден дублируемый иден-
тификатор"). После этого вы исправления дублируемых значе-
ний вы можете выполнить описанные в предыдущих разделах
шаги.