Общие сведения о файле ресурсов
В большинство программ для Windows включаются пользовательские значки, которые Windows выводит на экран в левом верхнем углу строки заголовка окна приложения. Кроме этого Windows выводит на экран значок программы в списках программ меню Start, или в панели задач в нижней части экрана, или в списке программы Windows Explorer. Некоторые программы — наиболее известными из которых являются графические программы для рисования, например Windows Paint , используют собственные курсоры мыши для отражения различных действий программы. В очень многих программах для Windows используются окна меню и диалога. Вместе с полосами прокрутки окна меню и диалога — это основа стандартного пользовательского интерфейса Windows .
Значки, курсоры, окна меню и диалога связаны между собой. Все это виды ресурсов ( resources ) Windows . Ресурсы являются данными, и они хранятся в .ЕХЕ файле программы, но расположены они не в области данных, где обычно хранятся данные исполняемых программ. Таким образом, к ресурсам нет непосредственного доступа через переменные, определенные в исходном тексте программы. Они должны быть явно загружены из файла с расширением .ЕХЕ в память.
Когда Windows загружает в память код и данные программы для ее выполнения, она обычно оставляет ресурсы на диске. Только тогда, когда Windows нужен конкретный ресурс, она загружает его в память. Действительно, вы могли обратить внимание на такую динамическую загрузку ресурсов при работе с
– 43 –
Windows-программами. Когда вы первый раз вызываете окно диалога программы, Windows обычно обращается к диску для копирования ресурса окна диалога из файла с расширением .ЕХЕ программы в оперативную память.
Существуют следующие ресурсы:
· Значки или иконки ( icons )
· Курсоры ( cursors )
· Битовые образы ( bitmaps )
· Символьные строки ( character strings )
· Ресурсы, определяемые пользователем ( user defined resources )
· Меню ( menus )
· Быстрые комбинации клавиш ( keyboard accelerators )
· Окна диалога ( dialog boxes )
Компиляция ресурсов
При использовании современных средств программирования, таких как Microsoft Visual C ++, создание и дальнейшее использование ресурсов в значительной мере автоматизировано. Программисту предоставляется возможность визуально добавлять и редактировать все типы ресурсов.
Однако, вначале, рассмотрим каким образом, традиционно используются файлы ресурсов. При создании программы ресурсы определяются в отдельном текстовом файле описания ресурсов ( resource script ), который представляет собой ASCII-файл с расширением *. RC . Файл описания ресурсов может содержать представление ресурсов в ASCII-кодах, а также может ссылаться и на другие файлы ( ASCII или бинарные файлы), в которых содержатся остальные ресурсы. С помощью компилятора ресурсов (файл RC . EXE ) файл описания ресурсов компилируется и становится бинарным файлом с расширением *. RES . Задав в командной строке LINK файл с расширением *. RES , вы можете заставить компоновщик включить скомпилированный файл описания - ресурсов в файл с расширением *.ЕХЕ программы вместе с обычными кодом и данными программы из файлов с расширением *. OBJ и *. LIB .
В командной строке можно компилировать файл описания ресурсов с расширением *.RC, превращая его, таким образом, в бинарный файл с расширением . RES , путем выполнения команды:
RC - r - DWIN 32 filename . RC
Эта команда создает бинарный файл с именем filename . RES . Большинство программистов, пишущих программы для Windows , дают файлу описания ресурсов то же имя, что и самой программе.
В приведенной выше командной строке параметр -r заставляет компилятор ресурсов создать файл с расширением *. RES и сохранить его на диске. Параметр -DWIN32 определяет константу (WIN32), которая показывает, что скомпилированный файл описания ресурсов должен храниться в 32-разрядном формате, предназначенном для Windows 95 и Windows NT .
Компоновщик, поставляемый с Microsoft Visual C++ для Windows 95 выполняет работу по включению файла ресурсов в *.ЕХЕ файл. Просто укажите файл с расширением . RES рядом с файлом (или файлами) с расширением .OBJ в командной строке LINK .
Значки и курсоры
Для использования в вашей программе значков (иконок) и курсоров необходимо выполнить три этапа:
·Создание иконки и ее описания.
·Загрузка иконки в программу во время ее выполнения.
·Выполнение операций (например, вывода на экран) с иконками.
Создание иконок
Программу-инструмент, которую вы используете для создания значков, курсоров и битовых образов часто называют редактором изображений ( image editor ), и он является одной из наиболее важных утилит разработчика в любой интегрированной среде разработки программ для Windows . Как значки, так и курсоры являются разновидностью битовых образов.
Битовый образ ( bitmap ) — это битовый массив, где один или более битов соответствуют каждому пикселю экрана. В монохромном битовом образе для каждого пикселя требуется один бит. (В простейшем случае 1 соответствует белому цвету, а 0 — черному. Тем не менее, битовые образы часто используются не только для создания простых рисунков, но и в логических операциях.) В цветном битовом образе для отображения цвета каждому пикселю соответствует несколько битов. Редакторы изображений обычно поддерживают создание монохромных и 16-цветных битовых образов. В 16-цветном битовом образе для каждого пикселя требуется 4 бита.
В Windows 95 имеется два размера значков — стандартный и маленький. На дисплеях VGA стандартный значок имеет размер 32 пикселя в ширину и 32 пикселя в высоту, а площадь маленького значка равна 16 квадратных пикселей. Маленький значок используется в левой части строки заголовка приложения для вызова системного меню, в панели задач системы в нижней части экрана, а также в списках программ меню Start. Значки, появляющиеся на рабочем столе, имеют стандартный размер. В программе Windows Explorer и меню Start пользователь может произвольно выбирать стандартный или маленький значок.
В программе можно получить горизонтальный (X) и вертикальный ( Y ) размеры значков и курсоров, используя функцию GetSystemMetrics с параметрами SM_CXICON и SM_CYICON (для стандартного значка), SM_CXSMICON и SM_CYSMICON (для маленького значка) и SM_CXCURSOR и SM_CYCURSOR для курсоров мыши. Для большинства дисплеев размеры стандартных курсоров и значков одинаковы.
Редактор изображений, включенный в состав программы Developer Studio , может создавать файл с расширением .ICO, содержащий один из трех различных образов значка:
· Стандартный: 16-цветный площадью 32 квадратных пикселя
· Монохромный: черно-белый площадью 32 квадратных пикселя
· Маленький: 16-цветный площадью 16 квадратных пикселей
Вам нет необходимости создавать значки во всех трех форматах. Сама Windows может создать из стандартного значка — маленький, просто исключив каждый второй столбец и строку. Для монохромных дисплеев (которые сейчас почти полностью устарели) Windows может приближенно изобразить значок, используя различные оттенки серого цвета.
Когда вы создаете образ значка в одном из трех представленных форматов, редактор изображений, фактически, сохраняет его в виде двух битовых образов — монохромной маски ( mask ) битового образа и монохромного или цветного изображения битового образа. Значки всегда прямоугольны, но маска позволяет значку представлять непрямоугольные изображения, т. е. вместо изображения всего значка,
– 45 –
некоторые его части могут быть окрашены на экране цветом фона. Кроме этого значки могут содержать области, инвертирующие цвет фона.
При выводе значка на экран, Windows сначала использует поразрядную операцию AND экрана и первого битового образа. Пиксели экрана, соответствующие нулевым битам первого битового образа становятся нулевыми, т. е. черными. Пиксели экрана, соответствующие единичным битам остаются без изменения. Эта логика отражена в следующей таблице:
Бит маски 0 1
Пиксели экрана
0 0
0 1
Далее, Windows выполняет поразрядную операцию исключающего OR изображения битового образа и экрана. Во втором битовом образе оставляет пиксель на экране без изменений; 1 во втором битовом образе инвертирует пиксель экрана. Эта логика представлена в следующей таблице:
Дата добавления: 2016-11-22; просмотров: 798;