Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
93-95.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
972.03 Кб
Скачать

Использование фонографа (Sound Recorder)

Фонограф, расположенный в группе Windows Accessories (Принадлежности), представляет собой, вероятно, самое простое средство для создания ресурсов приложения. Для того чтобы создать звуковой или волновой файл (с расши­рением .WAV), нужно сделать двойной щелчок на пиктограмме программы Sound Recorder (Фонограф).

Запустив программу Sound Recorder, выберите пункт меню File|New. Под­ключив микрофон или другую аудиоаппаратуру к звуковой плате компьюте­ра, щелкните на пиктограмме микрофона Sound Recorder, чтобы начать запись. Для прекращения записи нужно щелкнуть на кнопке остановки. Не забудьте сохранить файл, выбрав пункт меню File |Save.

После записи файла можно воспользоваться меню Edit или Effects для того, чтобы сократить запись или добавить к звуку специальные эффекты, на­пример, эхо. Поэкспериментируйте с различными спецэффектами, и вы убедитесь, что можно сделать звук намного интереснее. При этом рекомен­дуется использовать модерацию: то, что понравилось при первом прослуши­вании, в дальнейшем может стать просто источником шума.

Программа обращается к файлу с оцифрованным звуком при помощи функции sndPlaySound().

Для создания данного приложения при помощи компилятора C/C++ потребуются файл проекта, файл с исходным текстом программы на Языке С, файл ресурсов и файл с отцифрованным звуком. Битовый образ создается с помощью программы Sound Recorder и в данном примере сохранен в файле WAV.WAV. Для данного примера необходимо создать свой оригинальный звуковой файл.

94. Разработка ресурсов меню и акселераторов клавиатуры. Файл заголовков (resource.H). Файл ресурсов (menu3.Rc). Файл приложения (menu3.Cpp).

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

Меню 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 + буква меню. Используемая буква определяется с помощью амперсанта(&).

  1. 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().

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]