русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание описания меню в файле ресурсов


Дата добавления: 2013-12-23; просмотров: 1880; Нарушение авторских прав


Меню и назначение клавиш

Работа с меню в Windows – одно из самых простых и понятных мест. Для создания меню вам просто нужно:

1) Задать структуру меню в файле ресурсов, последовательно определив пункты меню в виде текстовых строк.

2) Каждому пункту меню поставить в соответствие уникальный идентификатор.

3) Указать имя меню в структуре класса окна.

Как вы уже понимаете, для функции окна неважно, каким образом пользователь выбрал команду – при помощи последовательно нажатий клавиш (Alt, стрелка вправо, ... , Enter, стрелка вниз, ... , Enter), мышью или просто нажатием назначенных на пункт меню комбинацией клавиш (например, копируете текст в «почтовый ящик» – Clipboard – нажатием Ctrl / Ins ).

Когда пользователь выбирает пункт меню, Windows передает приложению сообщение WM_COMMAND, содержащее идентификатор выбранного пункта, так что после определения структуры меню в файле ресурсов нужно оформить собственно текст программы – вывести обработку сообщения WM_COMMAND.

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

Отображение серым цветом и неактивность меню – разные вещи; пункт может отображаться нормально, но быть неактивным (DESABLED). Однако, если пункт отображается серым цветом (GRAYED), то он всегда неактивен; мы рекомендуем вам пользоваться именно этим состоянием, поскольку иначе пользователь не может определить активен пункт или нет.

Меню может быть создано двумя различными способами: описанием в файле ресурсов и функциями динамической работы с меню, т.е. непосредственно из самой программы, в процессе её работы. Чаще всего используются оба способа: при создании программы в файле ресурсов определяется одно или несколько меню, а в процессе работы по мере необходимости одно меню может быть заменено другим или изменены некоторые свойства текущего меню (пункты могут быть динамически добавлены, убраны, отмечены, выделены серым цветом и т.п.).



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

Определение меню, которое помещается в файл ресурсов, должно иметь следующий формат:

 

MenuName MENU [опции загрузки] [опции памяти]

begin

MENUITEM «Item1», IDM_Item1

MENUITEM «Item2», IDM_Item2

...

POPUP «Item3»

begin

MENUITEM «Item3–1», IDM_Item3–1

MENUITEM «Item3–2», IDM_Item3–2

...

POPUP «Item3–6»

begin

MENUITEM «Item3–6–1», IDM_Item3–6–1

MENUITEM «Item3–6–2», IDM_Item3–6–2

...

end

...

end

...

end

 

Здесь MenuName – это имя ресурса–меню, подобно имени ресурсов–пиктограмм или ресурсов–курсоров, рассмотренных ранее. По этому имени можно обращаться к описанию меню из программы. Опции загрузки – PRELOAD или LOADNCALL – указывают, как следует поступить с ресурсом при загрузке приложения на выполнение. Если указать PRELOAD, то ресурс меню загружается при загрузке приложения автоматически, а при использовании ключа LOADNCALL ресурс меню загружается в память только по необходимости.

Опции памяти – FIXED, MOVEABLE и DISCARDABLE – управляют тем, как Windows должен «обращаться» с сегментом памяти, в который загружается ресурс, в процессе работы приложения. Опции FIXED запрещает Windows перемещать сегмент с ресурсом в памяти, опция MOEABLE явно разрешает перемещение сегмента при необходимости (но при этом сегмент считается неснимаемым), а опция DISCARDABLE указывает Windows, что он может удалять сегмент с ресурсом (меню) из памяти (сигмент с описанием ресурсов считается снимаемым). По умолчанию действуют опции MOVEABLE и DISCARDABLE. Если явно указывается опция DISCARDABLE, надо также указать MOVEABLE.

Пункты меню определяются между ключевыми словами BEGIN и END. Они могут быть двух типов – описанные ключевыми словами MENUITEM и POPUP. Пункт, описанный ключевым словом MENUITEM, является конечным пунктом меню; выбор этого пункта пользователем влечет за собой не переход на более низкий уровень меню, а передачу функции окна сообщения WM_COMMAND, в параметр wParam которого помещен идентификатор wID.

 

MENUITEM «&Пункт», wID ,опции

 

Всем пунктам меню можно назначать опции, определяющие свойства пунктов меню при начальной згрузке (в последствии эти свойства могут быть изменены):

GRAYED

Пункт меню неактивный (не вырабатывает сообщений WM_COMMAND при выборе его пользователем). Текст пункта отображается на экране в сером цвете.

INACTIVE

Пункт меню неактивный (не вырабатывает сообщений WM_COMMAND при выборе его пользователем). Отображает он, однако, так же, как и активный.

NENUBREAK

Это и следущие за ним пункты меню отображаются в новом столбце(если указан для главного меню, то в новой строке).

MENUBARBREAK

Это и следущие за ним пункты меню отображаются в новом столбце(если указан для главного меню, то в новой строке); предидущий и новый столбец (строка) разделяются вертикальной чертой.

 

CHECKED

Пункт меню помечен галочкой, помещенной слева от него. Этот флаг не используется для пунктов главного меню приложения.

SEPARATOR

Это ключевое слово указывается без пункта меню, поскольку определяет разделитель (горизонтальную линию), которым выделяются в группы связанные пункты меню.

HELP

пункт меню выравнивается по правой стороне меню.

Опции, перечисленные выше, могут комбинироваться при описании меню с помощью булевой операции «ИЛИ» (символ ч ); нельзя только комбинировать опции GRAYED и INACTIVE, а также опции MENUBREAK и MENUBARBREAK.

Величина wID в предложении MENUITEM определяет число, которое Windows передает приложению через сообщение WM_COMMAND от меню. Идентификатор пункта меню wID должен быть уникальным; идентификаторы, как правило, определяются отдельно, в специальном включающем файле.

Пункт, описанный ключевым словом POPUP, является заголовком подменю; при выборе этого пункта пользователем сообщение WM_COMMAND функции окна не передается (и поэтому здесь идентификатор wID не нужен), а открывается подменю, пункты которого также описаны ключевыми словами BEGIN и END:

 

POPUP «&Пункт», опции

BEGIN

...

END

 

Для пунктов, описанных ключевым словом POPUP, можно использовать те же опции, что и для пунктов MENUITEM.

Та буква в названии меню, перед которой указан символ амперсанта (&), при выводе меню автоматически выделяется подчеркиванием, и ее нажатие (вместе с клавишей Alt) приводит к выбору данного пункта. Если не включать в наименование пункта значок амперсанта, то Windows не будет подчеркивать символы текста, а с клавишей Alt можно будет использовать первый символ текста.

 



<== предыдущая лекция | следующая лекция ==>
Комбинированный список | Сообщения меню


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.