Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пиктограммы






Могут быть описаны в самом файле ресурсов, либо хранится в отдельном ico-файле. Рассмотрим последний случай. Вот файл ресурсов resu.rc:

 

#define IDI_ICON1 1

IDI_ICON1 ICON “Cdrom01.ico”

 

Как видите, файл содержит всего две значимы строки. Одна строка определяет идентификатор пиктограммы, вторая – ассоциирует идентификатор с файлом Cdrom01.ico. Язык ресурсов очень напоминает язык Си. Откомпилируем текстовый файл resu.rc: RC resu.rc. На диске появится объектный файл resu.res. При компоновке укажем этот файл в командной строке:

LINK / subsysem: windows resu.obj resu.res

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

 

PUSH IDI_APPLICATION

PUSH 0

CALL LoadIconA8

MOV [WC.CLSHICON], EAX

 

А вот фрагмент программы для установки пиктограммы указанной в файле ресурсов:

 

PUSH 1; идентификатор пиктограммы-см. файл resu.rc

PUSH [HINST]; идентификатор процесса

CALL LoadIconA@8

MOV [WC.CLSHICON], EAX

 

Структура значка

NotifyIconDataA STRUCT

cbSize DWORD?; размер структуры

hwnd DWORD?; дескриптор окна

uID DWORD?; идентификатор пиктограммы

uFlags DWORD?; флаги

uCallbackMessage DWORD?; идентификатор сообщения

hIcon DWORD?; дескриптор пиктограммы

szTip DWORD?; сообщение, которое будет

; отображаться

NotifyIconDataA ENDS

 

 

Курсоры

Подход здесь полностью идентичен. Привожу ниже файл ресурсов, где определен и курсор, и пиктограмма.

#define IDI_ICON 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

 

Битовые картинки

Здесь ситуация аналогична двум предыдущим. Вот пример файла ресурсов с битовой картинкой:

 

#define BIT1 1

BIT1 BITMAP “PIR2.BMP”

 

Строки

Чтобы задать строку или несколько строк, используется ключевое слово STRINGTABLE. Ниже представлен текст ресурса, задающий две строки. Для загрузки строки в пиктограмму используется функция LoadString. Строки, задаваемые в файле ресурсов, могут играть роль констант.

 

#define STR1 1

#define STR2 2

STRINGTABLE

{

STR1, “Сообщение”

STR2, “Версия 1.01”

}

 

Диалоговые окна

Диалоговые окна являются наиболее сложными элементами ресурсов. Поэтому работа с диалоговыми окнами рассматривается в лабораторной работе №3.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал