- •Лекция 7 Ресурсы Способы хранения данных программы
- •Общие сведения о файле ресурсов
- •Компиляция ресурсов
- •Значки и курсоры
- •Создание иконок
- •Получение описателя иконок
- •Использование иконок в программе
- •Использование альтернативных курсоров
- •Битовые образы: картинки в пикселях
- •Символьные строки
- •Использование ресурсов-символьных строк
- •Idl, "character string 1" id2, "character string 2" [определения остальных строк] }
- •Ресурсы, определяемые пользователем
Битовые образы: картинки в пикселях
Мы уже говорили об использовании битовых образов в значках и курсорах. В Windows также включен тип ресурсов с именем BITMAP.
Битовые образы используются в двух главных целях. Первая — рисование на экране картинок. Например, файлы драйверов дисплеев в Windows содержат массу крошечных битовых образов, которые используются для рисования стрелок в полосах прокрутки, галочек в раскрывающихся меню, изображений на кнопках изменения размеров окна, флажках и переключателях. Вы можете использовать битовые образы в меню и панелях инструментов приложений. В таких программах, как Paint, битовые образы используются для изображения графического меню.
Вторая цель использования битовых образов — создание кистей. Кисти, как вы уже знаете, являются шаблонами пикселей, которые Windows использует для закрашивания изображаемых на экране областей.
Для создания битовых образов и их описания используются те же средства, что и для иконок.
Для загрузки битового образа в программу используется функция LoadBitmap, которая аналогична функциям LoadIcon и LoadCusor. Ее возвращаемым значением является описатель битового образа:
HBITMAP hBitmap = LoadBitmap (hinstance, szAppName) ;
Этот описатель затем можно использовать для создания шаблонной кисти (pattern brush). Основой кисти является битовый образ:
HBRUSH hBrush = CreatePatternBrush (hBitmap) ;
Когда Windows закрашивает этой кистью область экрана, битовый образ повторяется по горизонтали и вертикали до заполнения ограничивающей области.
Главное отличие между битовыми образами и остальными ресурсами в их практической важности и может быть легко выражено так: битовые образы являются объектами GDI. Хороший стиль составления программ рекомендует, что битовые образы должны быть удалены из программы, если в них отпадает нужда, или если программа завершается.
DeleteObject((HGDIOBJ) hBrush) ;
DeleteObject((HGDIOBJ) hBitmap) ;
Символьные строки
Наличие ресурса для символьных строк может вначале показаться странным. Тем более, что не было никаких проблем при использовании привычных символьных строк, определенных в качестве переменных непосредственно в теле исходного текста нашей программы.
Ресурсы-символьные строки предназначены главным образом для облегчения перевода вашей программы на другие языки. Как будет рассказано далее, меню и окна диалога также являются частью описания ресурсов. Если вместо непосредственного использования строк в исходном тексте вашей программы, вы используете ресурсы - символьные строки, то весь текст вашей программы, окажется в одном файле — файле описания ресурсов. Если текст в файле описания ресурсов переводится, то все, что вам нужно сделать для иноязычной версии вашей программы, это перекомпоновать программу и добавить переведенные ресурсы в файл с расширением *.ЕХЕ. Этот способ намного безопасней, чем возня с исходными кодами вашей программы.
Использование ресурсов-символьных строк
Ресурсы - символьные строки определяются в описании ресурсов с помощью ключевого слова STRINGTABLE:
STRINGTABLE {