Подход здесь полностью идентичен. Привожу
Рисунок 2.3.1. Пример файла ресурсов с включенным туда кодом иконки.
2. Курсоры. Подход здесь полностью идентичен. Привожу ниже файл ресурсов, где определен и курсор, и иконка.
#define IDI_ICON1 1 #define IDI_CUR1 2
IDI_ICON1 ICON "Cdrom01.ico" IDI_CUR1 CURSOR "4way01.cur"
А вот фрагмент программы, вызывающей иконку и курсор.
;----------иконка окна PUSH 1 ; идентификатор иконки PUSH [HINST] CALL LoadIconA@8 MOV [WC.CLSHICON], EAX ; ----------курсор окна PUSH 2 ; идентификатор курсора PUSH [HINST] CALL LoadCursorA@8 MOV [WC.CLSHCURSOR], EAX
Как и для иконки, программа brcc32.exe обрабатывает определение курсора в тексте файла ресурсов.
3. Битовые картинки (*.BMP). Здесь ситуация аналогична двум предыдущим. Вот пример файла ресурсов с битовой картинкой.
#define ВIТ1 1
BIT1 BITMAP "PIR2.BMP"
4. Строки. Чтобы задать строку или несколько строк используется ключевое слово STRINGTABLE. Ниже представлен текст ресурса, задающий две строки. Для загрузки строки в программу используется функция LoadString (см. ниже). Строки, задаваемые в файле ресурсов, могут играть роль констант.
#define STR1 1 #define STR2 2
STRINGTABLE { STR1, "Сообщение" STR2, "Версия 1.01" }
5. Диалоговые окна. Диалоговые окна являются наиболее сложными элементами ресурсов. В отличие от ресурсов, которые мы до сих пор рассматривали, для диалога не задается идентификатор. Обращение к диалогу происходит по его имени (строке).
#define WS_SYSMENU 0x00080000L #define WS_MINIMIZEBOX 0x00020000L #define WS_MAXIMIZEBOX 0x00010000L
DIAL1 DIALOG 0, 0, 240, 120 STYLE WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX CAPTION "Пример диалогового окна" FONT 8, "Arial" { }
Как видим, определение диалога начинается со строки, содержащей ключевое слово DIALOG. В этой же строке далее указывается положение и размер диалогового окна. Далее идут строки, содержащие другие свойства окна. Наконец идут фигурные скобки. В данном случае они пусты. Это означает, что на окне нет никаких управляющих элементов. Тип окна, а также других элементов определяется константами, которые мы поместили в начале файла. Эти константы стандартны, и для языка Си хранятся в файле RESOURCE.H. Мы, как и раньше, все константы будем определять непосредственно в файле ресурсов. Обращаю ваше внимание, что константы определяются согласно нотации языка Си.
Содержание Назад Вперед