- •Лабораторный практикум «Основы разработки приложений Windows» Книга 1
- •Часть 1. Теоретические сведения4
- •Часть 2. Лабораторный практикум95
- •Часть 1 Теоретические сведения
- •1. Структура приложения Windows Простейшая программа с главным окном
- •Структура программы
- •Главная функция WinMain()
- •Регистрация класса окна
- •Создание и показ окна
- •Сообщения Windows и цикл их обработки
- •Оконная функция
- •Макрос handle_msg и структурирование программы
- •2. Интерфейс графических устройств
- •Простая программа, использующая средства gdi
- •Обработка сообщений wmpaint
- •Контекст устройства
- •Использование графических инструментов
- •3. Ресурсы: меню Простая программа с меню
- •Файл ресурсов
- •Описание меню в файле ресурсов
- •Сообщение wmcommand
- •Программное создание меню
- •Плавающее меню
- •Инструментальная панель
- •Всплывающие подсказки
- •0,"Первая строка"
- •1,"Вторая строка"
- •2,"Третья строка"
- •4. Ресурсы: диалоговые окна
- •Простая программа с меню и диалогом
- •Описание диалога в файле ресурсов
- •Обслуживание модального диалога
- •Модальный диалог как главное окно приложения
- •Немодальный диалог
- •Список в диалоговом окне
- •Окно редактирования и статический элемент управления
- •Графика в диалоговом окне
- •Перекрашивание диалогового окна и его элементов
- •Часть 2 Лабораторный практикум Работы лабораторного практикума Работа 1. Вызов функций Windows
- •Работа 2. Главное окно приложения (пример 1-1 из настоящего пособия)
- •Работа 3. Вывод в главное окно приложения текста и фигур (пример 2-1 из настоящего пособия)
- •Работа 4.Вывод в главное окно приложения текста и фигур (индивидуальное задание а)
- •Работа 5. Меню и модальный диалог (пример 4-1 из настоящего пособия)
- •Работа 6.Меню (индивидуальное задание в)
- •Работа 7.Модальный диалог в качестве главного окна приложения (индивидуальное задание с)
- •Работа 8.Вывод графика в главное окно приложения (индивидуальное заданиеD)
- •Работа 9. Немодальный диалог
- •Работа 10. Диалог с окном редактирования
- •Работа 11. Программное создание меню
- •Работа 12. Плавающее меню
- •Работа 13. График в диалоговом окне
- •Работа 14. Инструментальная панель (tool bar)
- •Работа 15. Инструментальная панель со всплывающими подсказками (tool tips)
- •Работа 16. Пользовательские пиктограммы и курсоры
- •Работа 17. Локализация программных продуктов
- •Индивидуальные задания лабораторного практикума
Файл ресурсов
Файл ресурсов является текстовым файлом и имеет стандартное расширение .RC. В данной программе в него включено только описание меню; вообще же в файле ресурсов можно описывать диалоговые окна, растровые изображения, пиктограммы, курсоры, таблицы символьных строк и пр. Различные ресурсы описываются в файле ресурсов в специальных форматах, понятных для компилятора ресурсов, входящего в состав любой среды программирования, в частности, пакета Borland С++. Обработка исходного текста самой программы и исходного текста ресурсов происходит, можно сказать, параллельно (рис. 3.2): компилятор исходного текста программы обрабатывает файл .CPP, образуя двоичный объектный файл с расширением .OBJ, а компилятор ресурсов обрабатывает файл .RC, получая из него промежуточный файл с расширением .RES.
Рис. 3.2. Процесс создания выполнимого файла для программы с ресурсами
Далее компоновщик компонует файлы .OBJи .RES, собирая из них единый загрузочный файл с расширением .EXE, который включает в себя программные коды, данные и ресурсы. После образования загрузочного файла промежуточные файлы с расширениями .OBJи .RESуже не нужны; их вполне можно удалить, так как все необходимое для выполнения программы входит в файл .EXE.
Существенно, что элементы приложения, описанные в файле ресурсов (например, форматы меню и диалогов, а также тексты и рисунки) не разбросаны по загрузочному файлу, а сосредоточены в одном месте и хранятся в определенном формате (рис. 3.3). Это дает возможность специальным программам, понимающим этот формат, читать и даже модифицировать ресурсы непосредственно в загрузочном файле приложения – действие, совершенно невозможное в традиционных программах, не использующих понятие ресурсов.
Рис. 3.3. Возможное размещение ресурсов в загрузочном файле приложения
Преимущества, возникающие при выделении определенных объектов в файл ресурсов, носят многоплановый характер:
Программа требует меньше памяти, так как ресурсы могут загружаться (из файла .EXE) лишь по мере надобности. Если, например, в виде ресурсов хранятся строки аварийных сообщений, они могут подгружаться в память лишь в случае возникновения ошибок, при которых эти сообщения должны выводиться на экран, а при нормальном выполнении занимать место в памяти не будут.
Файл ресурсов проще выглядит и имеет бόльшую наглядность, чем исходный текст программы. Редактирование состава меню и диалоговых окон или содержимого текстовых строк значительно удобнее выполнять в отдельном файле ресурсов, чем в исходном тексте программы.
Использование ресурсов упрощает структуру и содержание программы, так как при описании, например, меню в файле ресурсов система берет на себя организацию и показ меню, а программист должен лишь обеспечить содержательную обработку команд меню.
Специальные инструментальные средства, разработанные для редактирования ресурсов, в частности входящая в состав IDE Borland C++ программа Resource Workshop (“мастерская ресурсов”), существенно облегчают разработку и редактирование меню, диалогов, пиктограмм и курсоров. То же можно сказать про средуMicrosoft Visual C++, в которую встроены средства визуального создания и редактирования ресурсов.
Ресурсы можно редактировать непосредственно в загрузочном файле приложения (с помощью упомянутого выше редактора ресурсов). Это, в частности, дает возможность переводить тексты сообщений и меню на другой язык, не имея исходных текстов приложений (так называемая локализация программных продуктов).
Ресурсы, например, изображения элементов управления, кнопок, курсоров, пиктограмм и пр. можно извлечь из загрузочного файла приложения, чтобы использовать их в другом приложении.