4. Для определения выбранного пользователем пункта использовать заголовочный файл с константами команд меню.

Конечно, это только общее описание. Изменения нужно описать более детально. В листинге 5.1 приведена структура файла ресурсов MenuMin.гс, определяющего шаблон меню, состоящего из двух подменю.

Создание и использование меню

Листинг 5.1

// Так задаются комментарии finclude "resource.h" IDR_MENU1 MENU DISCARDABLE BEGIN

POPUP "File" //Начало описания подменю BEGIN

MENUITEM "Imp&ort". IMPORT. CHECKED // Терминальные

MENUITEM "Load". LOAD. GRAYED // пункты

MENUITEM "Save". SAVE // меню

END // Конец описания подменю POPUP "Wo&rk" BEGIN

MENUITEM "Calculate". ID_CALC. CHECKED MENUITEM "Graphics". IDIGRAPH. GRAYED MENUITEM "Table". ID_TABLE
END
END

// Таблица строк - отдельный ресурс

// Это необязательная часть, ее можно удалить

// Сейчас таблица строк содержит пояснения к трем пунктам меню

STRINGTABLE DISCARDABLE
BEGIN

IMPORT "Загрузка геометрической модели в формате NFF" SAVE "Сохранение картинки на диске" ID_CALC "Старт моделирования"

END END

В строке IDR_MENU1 MENU второе слово задает тип ресурса. В одном файле ресурсов можно описать несколько шаблонов меню, поэтому первое слово IDR_MENU1 является идентификатором экземпляра меню, который задается программистом. В последующих строках перечисляются шаблоны пунктов меню, заключенные в операторные скобки BEGIN - END.

В данном примере описано иерархическое меню. Каждый из двух пунктов ( File, Work) представляет собой подменю из трех пунктов, также обрамленных ключевыми словами BEGIN и END.

Заметим, что если пункт является подменю, то перед его названием указывается слово POPUP. Если же пункт является конечным, или, как его еще называют, терминальным, то перед его названием записывается слово MENUITEM, а после названия записывается команда, идентифицирующая пункт (например, пункт Calculate идентифицируется командой меню ID_CALC). После команды в строке-описании пункта могут следовать слова CHECKED, DISABLED и GRAYED, при наличии которых соответствующий пункт отмечается на экране взведенным флажком, выключается или выводится серым тусклым цветом, который отмечает недоступность этого пункта меню. Заданное таким образом состояние пункта во время работы приложения может быть проверено и изменено при помощи функций GetMenuItemlnfcK), GetMenuStateO, CheckMenuItemO и EnableMenuItem().


⇐ Предыдущая| |Следующая ⇒