Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Разработка ресурсов меню и акселераторов клавиатуры. Файл заголовков (resource.h). Файл ресурсов (MENU3.RC). Файл приложения (MENU3.CPP).

Читайте также:
  1. Базы данных. Поддержка составных документов. Внешний вид приложения и другие опции. Другие опции.
  2. Библиографическое описание ресурсов сети интернет.
  3. Библиографическое описание сериальных и других продолжающихся ресурсов
  4. В качестве приложения. Полет Гоголя, или кое-что о фабуле и сюжете
  5. В области лексики для заголовков английских газет характерно
  6. Вопрос 8. Разработка платежного календаря организации
  7. Все источники формирования финансовых ресурсов подразделяются на внутренние и внешние источники.

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

Меню Resource позволяет вызывать редактор для создания или изменения ресурсов меню. Альтернативная (и часто предпочтительная) методика состоит в использовании при создании меню текстового редактора. Он может создавать и модифицировать описание меню в файле описания ресурсов (.RC). Этот файл содержит обыкновенный (не откомпилированный) текст.

Быстрые клавиши чаще всего используются создателями меню в качестве "клавиш быстрого доступа" для обращения к командам меню. Например, в меню есть 12 пунктов, каждый из которых выбирает соответствующий цвет фона. Пользователь может выбирать мышью из меню, а может использовать быстрые клавиши. Если используются быстрые клавиши, можно, например, выбирать цвет функциональными клавишами, и тогда меню вообще не будет появляться на экране.

Resource.h - Файл заголовка, создаваемый средой разработки; содержит определения символов.

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

Меню записывается с помощью спец. команд. Пример меню:

IDR_MENU1 MENU

BEGIN

POPUP “&Disk_Information”

BEGIN

MENUITEM “&Total Disk Space”, 40009

MENUITEM “&Free Disk Space”, IDM_TDS

MENUITEM “&Current Drive and Path”, 40010

MENUITEM SEPARATOR

MENUITEM “&Windows Version”, IDM_WV

END

POPUP “&Time/Date_Information”

BEGIN

MENUITEM “System T&ime”, IDM_TIME

MENUITEM “System &Date”, 40013

END

END

 

Для создания меню используются зарезервированные слова:

1. MENU – описатель создаваемого файла

2. POPUP – определяет ключевое слово для создаваемого меню

3. SEPARATOR – разделитель команд меню

4. MENUITEM – команды меню

Аналогом SEPARATOR является MENUBARBREAK. Команды меню записываются как строковые значения. Для обращения к командам меню могут использоваться идентификаторы, записываемые как символьные, так и константные.

Для использования «горячих» клавиш по умолчанию используется комбинация Alt + буква меню. Используемая буква определяется с помощью амперсанта(&).

5. BEGIN и END формируют группу команд главного меню

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

Кроме описанных ключевых слов могут применяться:

1. CHECKED – рядом с пунктом меню располагается отмена;

2. END – является последним пунктом выпадающего или статического меню;

3. GRAYED – пункт меню неактивен и выводится в списке пунктов меню бледным;

4. HELP – пункт меню является выравненным по правому краю статическим меню, выбираемым с клавиатуры;

5. INACTIVE – пункт меню выводится в списке, но не может быть выбран в данных обстоятельствах;

6. MENUBREAK – пункт меню помещается в новый столбец;

7. MENUBARBREAK – пункт меню помещается в новый столбец, пункты разделяются чертой;

8. OWNERDRAWN – за вывод пункта меню, включая выделенное неактивное о отмеченное состояние, отвечает владелец меню.

Акселераторы делают возможным вызов команды меню при нажатии на одну клавишу, которая назначается пользователем(F1-F12).

IDR_MENU1 MENU

BEGIN

POPUP “&Rectangle_Size”

BEGIN

MENUITEM “&small”, IDM_SMALL

MENUITEM “&Medium”, IDM_MEDIUM

MENUITEM “&Large”, IDM_LARGE

END

POPUP “Ba&ckground_Colors”

BEGIN

MENUITEM “Black&K\tF1”, IDM_BLACK

MENUITEM “&White\tF2”, IDM_WHITE

MENUITEM “&Red\tF3”, IDM_RED

MENUITEM SEPARATOR

MENUITEM “LT GR&EEN\tF9”, IDM_LTGREEN

MENUITEM “LT BL&UE\Tf10”, IDM_LTBLUE

END

END

 

Определение F1-F12 в MENUITEM не сделало их акселераторами. Для определения акселератора создается соответствующий файл:

IDR_ACCELERATOR1 ACCELERATORS

BEGIN

VK_F1, IDM_BLACK, VIRTKEY

NOINVERT

VK_F10, IDM_LTBLUE, VIRTKEY

NOINVERT

VK_F9, IDM_LTBLUE, VIRTKEY

NOINVERT

VK_F9, IDM_RED, VIRTKEY

NOINVERT

VK_F2, IDM_WHITE, VIRTKEY

NOINVERT

VK_F5, IDM_YELLOW, VIRTKEY

 

END

Акселераторы могут быть созданы в текстовом редакторе или с помощью мастера.

Описание акселератора содержится в файле ресурсов. При описании любого акселератора используется синтаксис:

event, id, [type] [NOINVERT] [SHIFT] [CONTROL]

Ключевые слова в [] не являются обязательными.

 

1. event описывает комбинацию клавиш, используемых в качестве акселератора; может быть записан целым числом, которое соответствует колу ASCII. Префикс VK не требует определения кода ASCII;

2. id – идентификатор акселератора;

3. type – содержит значения кода ASCII или виртуальные клавиши;

4. NOINVERT – при использовании выбираемых клавиш акселератора не будет выделяться пункт меню верхнего уровня;

5. SHIFT и CONTROL активизируют акселератор только при нажатии соответствующих клавиш.

 

Файл заголовков (MENU3.H)

В файле заголовков содержатся определения идентификаторов меню. Идентификаторы соответствуют следующим пунктам меню:

 

IDM_TDS общий объем дискового пространства

IDM_FDS объем свободного дискового пространства

IDM_DD принятый по умолчанию накопитель

IDM_WV текущая версия Windows

IDM_DATE текущая дата

IDM_TIME текущее время

Файл ресурсов (MENU3.RC)

В файле ресурсов для данного приложения содержится описание двух меню. Первое, Disk_Information, позволяет пользователю получить ин­формацию, связанную с диском и номером версии. Второе меню, Time/Date_Information, предназначено для вывода времени и даты. Обратите внимание на то, что в описании первого выпадающего меню после иденти­фикатора IDM_DD содержится элемент MENUBARBREAK. Результат такого описания показан на рис. 7.6.

 

Файл приложения (MENU3.C)

В данном приложении вся информации, предназначенная для вывода на экран, заносится в массив szMessage независимо от выбранного пункта меню. Данный массив описан как содержащий 50 символов. Реальная длина строки содержится в переменной sLength. Обе вышеупомянутые глобальные переменные описаны в начале приложения.

Информация о времени и дате содер­жится в структуре SYSTEMTIME.

Для обработки выбранных пунктов меню при помощи операторов case используется сообщение WM_COMMAND.

Общий объем дисковою пространства вычисляется при помощи функции GetDiskFrceSpace().Текущее время также запрашивается при помощи соответствующего пункта меню. В данном случае, вызывается функция GetSystemTiine().

Информация о времени и дате заносится в переменную st. которая пред­ставляет собой экземпляр структуры SYSTEMTIME (определенной в файле WINDOWS.Н или WINBASE.H). Ниже представлено описание структуры SYSTEMTIME:

 

typedef struct _J3YSTEMTIME {

WORD wYear;

WORD wMonth;

WORD wDayOfWeek;

WORD wDay;

WORD wHour;

WORD wMinute;

WORD wSecond;

WORD wMilliSeconds;

} SYSTEMTIME;

Другие пункты меню обрабатываются сходным способом.

Независимо от того, какой пункт меню был выбран пользователем, инфор­мация сохраняется в массиве szMessage и выводится в окно при обработке сообщения WM PA1NT. Выведенная в окне информация обновляется при выборе любого пункта меню, поскольку в конце блока обработки сообще­ния WM_COMMAND вызывается функция InvalidateRect().

 


Дата добавления: 2015-09-03; просмотров: 116 | Нарушение авторских прав


Читайте в этой же книге: Статические органы управления | Вывод окна | Виртуальные клавиши. Системные таймеры. Срабатывание таймера. Эффективное использование механизма таймеров. | Простое приложение Windows. Оболочка для всех приложений. Эффективное использование описателей. Компоненты приложения Windows. Функция WinMain(). Регистрация класса окна. | Простое приложение Windows. style. lpfnWndProc. cbClsExtra. cbWndExtra. hinstance. hIсоn. hCursor. hbrBackground. IpszMenuName. IpszClassName. | Создание окна с помощью функции CreateWindow | Приложение с циклом обработки сообщений | Оконные классы | То получим внутри прямоугольника эллипс. | Добавление курсоров |
<== предыдущая страница | следующая страница ==>
Добавление битовых образов| Подготовительные работы и допуск к работе

mybiblioteka.su - 2015-2024 год. (0.012 сек.)