Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
System programming / Конспект лекций / Лекция 7 Ресурсы часть1.doc
Скачиваний:
48
Добавлен:
08.05.2015
Размер:
79.87 Кб
Скачать

Битовые образы: картинки в пикселях

Мы уже говорили об использовании битовых образов в значках и курсорах. В 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 {