А) Ресурсы диалога

Файлы ресурсов (rc-файлы) создаются в виде текстового файла (этот файл можно создать как текстовым редактором, так и специальным редактором ресурсов) и компилируются компилятором ресурсов. Полученный в результате двоичный файл (res-файл) обычно компонуется с оставшимися частями приложения, образуя единый двоичный образ, содержащий выполняемый программный код и информацию о ресурсах.

Ресурсы являются данными, и они хранятся в exe-файле программы, но расположены они не в области данных, где обычно хранятся данные исполняемых программ. Они должны быть явно загружены из exe-файла в память.

Оператор файла ресурсов состоит из идентификатора, который может быть или текстовой строкой, или числовым значением, за которым следует сам оператор. Оператор может состоять из одной строки (в таком случае за ним следует один или несколько параметров) или из многих строк (в этом случае за оператором следует блок инструкций).

Однострочные операторы определяют растровые изображения (BITMAP), курсоры (CURSOR), шрифты (FONT), пиктограммы (ICON), язык ресурсов (LANGUGE). Однострочный оператор состоит из следующих частей:

Идентификатор Тип_ресурса [Характеристика_загрузки] Имя_файла_ресурса

Многострочные операторы в файле ресурсов определяют диалоговые окна (DIALOG), таблицы строк (STRINGTABLE), таблицы акселераторов (ACCELERATORS), меню (MENU), пользовательские данные (RCDATA) и ресурсы информации о версии. Многострочные операторы начинаются с идентификатора, оператора и необязательных параметров, затем следует блок инструкций, заключенный между ключевыми словами BEGIN-END:

Идентификатор ОПЕРАТОР [Необязательные_параметры]

[Необязательные_инструкции]

BEGIN

[Инструкции]

END

ПИКТОГРАММА.

В приложение можно добавить ресурс, который называется пиктограмма (icon). Пиктограмма - это графическое изображение небольшого размера, состоящее из отдельных пикселей (32x32). Пиктограммы хранятся в файлах с расширением имени.ico.

Для включения пиктограммы в файл описания ресурсов используется оператор ICON, ссылка на файл пиктограммы выглядит примерно так:

MyIcon ICON iconfile.ico

В приложении для получения дескриптора пиктограммы используется функция LoadIcon:

HICON LoadIcon(HINSTANCE hInst, LPCTSTR lpszIcon);

Первым параметром является дескриптор экземпляра приложения. Он необходим для того, чтобы Windows могла определить, в каком файле содержится ресурс пиктограммы.

Вторым параметром является имя пиктограммы из описания ресурсов, заданное в виде указателя на строку.

КУРСОР.

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

Инструкции для задания курсора в файле описания ресурсов и для получения его дескриптора в программе очень похожи на аналогичные инструкции для пиктограмм:

Описание ресурсов: MyCursor CURSOR cursfile.cur

Текст программы: HCURSOR hCursor=LoadCursor(hInst,”MyCursor”);

Операционная оболочка Windows содержит несколько встроенных курсоров. Их идентификаторы описаны в файле windows.h и начинаются с префикса IDC_.

Для загрузки встроенных курсоров также используется функция LoadCursor, но в качестве первого параметра ей передается NULL:

LoadCursor(NULL,IDC_ARROW);

Если курсор, загруженный с помощью функции LoadCursor, приложению больше не нужен, то можно освободить занимаемую им память, вызвав функцию DestroyCursor.

СИМВОЛЬНЫЕ СТРОКИ.

Ресурсы символьных строк предназначены главным образом для облегчения перевода приложения на другие языки. Ресурс таблицы строк определяет произвольное количество текстовых строк. Приложения ссылаются на эти строки по символьным идентификаторам.

Таблица строк определяется ключевым словом STRINGTABLE, за которым указаны необязательные инструкции и одно или более определений строк, заключенных между ключевыми словами BEGIN-END:

STRINGTABLE

BEGIN

id1 “character string 1”

id2 “character string 2”

// определения остальных строк

END

РЕСУРСЫ, ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ.

Операторы для пользовательских ресурсов могут быть как однострочными, так и многострочными.

Однострочные операторы используются для указания пользовательских ресурсов, которые хранятся в отдельных файлах. Вот как, например, в файле ресурсов приложения описывается ссылка на файл с данными:

MyData TEXT filedata.dat

Имена MyData (имя ресурса) и TEXT (тип ресурса) в операторе могут быть любыми. В данном примере был создан ресурс собственного типа, который называется TEXT.

Для того, чтобы получить дескриптор ресурса, необходимо вызвать функцию LoadResource:

HGLOBAL hResource=LoadResource(hInst,FindResource(hInst,”TEXT”,”MyData”));

Вместо имен и типов в описании пользовательского ресурса можно использовать числа. Числа, используемые в качестве типа ресурса, должны быть больше 255 (меньшие числа использует Windows).

Многострочные операторы для пользовательских ресурсов используются для внедрения определений пользовательских ресурсов в файл ресурсов. Синтаксис многострочных операторов пользовательских ресурсов:

имя тип [опции]

BEGIN

неструктурированные_данные

END

Блок неструктурированные_данные может содержать целые значение в десятичном, шестнадцатеричном или восьмеричном представлении или строки, заключенные в двойные кавычки. Строки неструктурированных данных должны явно завершаться нулем. Отдельные пункты данных разделяются запятыми.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: