Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
каркас.doc
Скачиваний:
58
Добавлен:
03.06.2015
Размер:
1.6 Mб
Скачать

Параметры menu

Параметр

Возвращаемое значение

1

DISCARDABLE

Неиспользуемое меню может быть удалено из памяти

2

FIXED

Меню фиксировано в памяти

3

LOADONCALL

Меню загружается только перед непосредственным использованием

4

MOVEABLE

Меню может перемещаться в памяти

5

PRELOAD

Меню загружается в момент старта программы

В Windows имеется два типа элементов меню: MENUITEM и POPUP. Элемент MENUITEM определяет обычный элемент меню, а POPUP –специфицирует выпадающее подменю, которое может в свою очередь содержать элементы типа MENUITEM и POPUP. Общая форма соответствующих операторов следующая:

MENUITEM "Имя", MenuID[,параметры]

POPUP "имя" [,параметры]

Здесь Имя является именем элемента меню, например Файл или Помощь. MenuID – это уникальный целочисленный идентификатор, ассоциированный с данным элементом меню; этот идентификатор передается в программу, если пользователь выбирает этот элемент меню. Обычно такие идентификаторы определяются как макроимена в отдельном файле, включаемом и в программу, и в RC-файл. Значение параметров (определенные в Windows.h) приводятся в таблице 4.4.

Таблица 4.4

Параметры элементов меню

Параметр

Назначение

1

CHECKED

Рядом с именем меню отображается отметка ("птичка"); не применимо к элементам меню верхнего уровня

2

GRAYED

Элемент меню недоступен (не может быть выбран) и ото­бражается серым цветом

3

HELP

Может быть связан с элементом Помощь. Применимо только к элементам типа MENUITEM

4

MENUBARBREAK

Для горизонтальных меню верхнего уровня приводит к раз­мещению элемента в новой строке, а для выпадающих меню – к размещению элемента в новой колонке. В последнем случае колонки разделяются вертикальной линией

5

MENUBREA

То же, что и MENUBARBREAK, за исключением того, что в этом случае не используется разделительная линия

Ниже приведен фрагмент программы создания меню, который Вам придется сейчас набрать. Назовем этот файл Menu.rc:

// Пример файла ресурсов, описывающего меню

#include "Menu.h"

MYMENU MENU

{

POPUP "&Раз"

{

MENUITEM "&Альфа", IDM_ALPHA

MENUITEM "&Бета", IDM_BETA

}

POPUP "&Два"

{

MENUITEM "&Гамма", IDM_GAMMA

POPUP "&Дельта"

{

MENUITEM "&Эпсилон", IDM_EPSILON

MENUITEM "&3ета", IDM_ZETA

}

MENUITEM "&Эта", IDM_ETA

MENUITEM "&Тэта", IDM_THETA

}

MENUITEM "&Помощь", IDM_HELP

}

Это меню с именем MYMENU содержит три команды верхнего уровня: Раз, Два и Помощь. Выбор Раз и Два открывает соответствующие выпадающие подменю. Команда Дельта в свою очередь активизирует выпадающие подменю. Заметьте, что команды, вызывающие выпадающие подменю, не имеют ассоциированных с ними идентификаторов. В этом меню все идентификаторы элементов представляют собой макроимена, начинающиеся с префикса IDM (эти макроимена определены во включаемом файле Menu.h). Вообще же можно выбирать макроимена и их префиксы по своему усмотрению.

Знак «коньюнкции» & в имени элемента меню означает, что буква, следующая за ним, является «горячей клавишей» для выбора данного элемента. То есть, когда соответствующее меню становится активным, нажатие «горячей клавиши» приводит к выбору элемента меню. «Горячая клавиша» не обязательно должна быть первой буквой в имени элемента меню, но она не должна дублировать «горячие клавиши» других элементов этого меню.

Файл Menu.h должен содержать определения макроимен идентификаторов эле­ментов меню. Введите его:

#define IDM_ALPHA 101

#define IDM_BETA 102

#define IDM_GAMMA 103

#define IDM_EPSILON 104

#define IDM_ZETA 105

#define IDM_ETA 106

#define IDM_THETA 107

#define IDM_HELP 108

Этот файл содержит идентификаторы, которые будут передаваться в Вашу программу при выборе соответствующих команд меню. Он будет включен также в программу, использующую меню. Помните, что макроимена и их значения можно выбирать по своему усмотрению, но каждое значение должно быть уникальным. Кроме того, значения идентификаторов должны быть в пределах от 0 до 65535.