Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Работа с растровыми изображениями. Иконки




Работа с растровыми изображениями. Курсоры.

Растровыми изображениями в Windows являются курсоры, иконки и BitMap-растры. Если они размещены в файле проекта с расширением RES, то их называют ресурсами приложения. Следует отметить, что все API-функции, начинающиеся со слов Load, обращаются к файлу ресурса или используют предопределенные инструменты, а все API-функции, начинающиеся со слов Create, создают графические образы в сегменте данных программы и тем самым ограничивают память, отводимую программе. Ресурсы же загружаются в память только при необходимости, а все остальное время находятся на диске. Их всегда необходимо удалять из памяти функцией DeleteObject.

Курсоры

Курсоры-это специальные растровые изображения, связанные с местоположением указателя мыши. Размер курсора зависит от разрешающей способности экрана и обычно составляет 32х32 пикселя. Изображение курсора хранится в виде двух масок(называемых AND и XOR), позволяющих сделать курсор«прозрачным». Курсоры обычно хранятся в файлах с расширением CUR или совместно с другими ресурсами в файле с расширением RES. Базовый курсор, который будет использоваться для окон данного класса, задается при создании класса функцией: LoadCursor (ByValhInstanceAsLong, ByVallpCursorNameAsLong) AsLong,

гдеhInstance- это экземпляр программы класса окна. При использовании базовых курсоров этот параметр должен быть равен 0.

lpCursorName-это идентификатор курсора из файла ресурса.

Обычно курсор типа IDC_WAIT (песочные часы) используется для указания на операцию, которая требует времени выполнения;

IDC_IBEAM –для операций редактирования текста; IDC_SIZEALL –при редактировании графических изображений.

Например, WC.hCursor= LoadCursor(0, IDC_NO)' илиIDC_CROSS С помощью свойства MousePointer объекта Screen можно устанавливать в рабочей области окна новый курсор.

Если возникает необходимость использовать внешний курсор, хранящийся в файле с расширением CUR, то можно воспользоваться функцией LoadCursorFromFile.

Курсоры, хранимые в ресурсах, и базовые курсоры удалять из памяти не нужно. Курсоры могут быть или одноцветными, или цветными, статическими или «живыми»(анимационными). Тип курсора, используемого в отдельной компьютерной системе, зависит от системного дисплея. Старые дисплеи типа VGA не поддерживают цветные или «живые» указатели.


Иконки используются для отображения окна в закрытом состоянии представляют собой не большое графическое изображение. При заполнении структуры WNDCLASSEX полю hIcon присваивается иконка размером 32x32 пикселя, а полю hIconSm-иконка 16x16 пикселей. Как и курсоры, иконки содержат две маски, что позволяет регулировать их прозрачность. Они могут храниться в файлах с расширением ICO либо в файлах с расширением RES. Иконка, которая должна использоваться во всех окнах класса, загружается одной из функций: LoadIcon, ExtractIcon, LoadResPicture. Синтаксис первых двух функций следующий. LoadIcon (ByValhInstanceAsLong, ByVallpIconNameAsLong) AsLong,

ExtractIcon (ByValhInstAsLong, ByVallpszExeFileNameAsString, ByValnIconIndexAsLong) AsLong,гдеlpIconName-именованный или числовой идентификатор базовой иконки;

hInst—этот аргумент может быть только App.hInstance;

lpszExeFileName-имя файла, из которого извлекаются иконки: исполнимый файл(exe), библиотека(dll) или отдельный ico-файл;

nIconIndex—номер извлекаемой иконки, или-1 для получения числа иконок в файле.

Если иконка базовая, то первый параметр у функции LoadIcon должен быть равен нулю. В среде Windows определены следующие базовые иконки: IDI_APPLICATION=0,IDI_EXCLAMATION= 1,IDI_QUESTION = 2, IDI_ASTERISK=3, IDI_HAND=4.

Кстати, функция ExtractIcon может загружать не только иконки, но и курсоры (для Windows они равнозначны).В программе можно создать собственную иконку функцией CreateIcon, а после е использования удалить функцией DeleteObject.

Для отображения в рабочей области окна иконки или курсора используется одна из следующих функций: DrawIcon (ByValhdcAsLong, ByValxLeftAsLong, ByValyTopAsLong, ByValhIconAsLong) AsLong, DrawIconEx (ByValhdcAsLong,ByValxLeftAsLong, ByValyTopAsLong, ByValhIconAsLong, ByValcxWidthAsLong, ByValcyHeightAsLong, ByValistepIfAniCurAsLong, ByValhbrFlickerFreeDrawAsLong, ByValdiFlagsAsLong) AsLong,гдеhDC—дескриптор контекста устройства, на котором будет выведена иконка. Если вывод иконки осуществляется на форму, то свойство AutoRedraw=True, а после вывода иконки нужно перерисовать объект методом Refresh; xLeft, yTop-координаты, в которые будет выведена иконка;

hIcon-дескриптор прорисовываемой иконки; cxWidth, cyHeight-размеры прорисовываемой иконки; istepIfAniCur-этот параметр указывает на номер кадра, если Вы загрузили анимированный курсор; hbrFlickerFreeDraw-дескриптор кисти для перерисовки значка. По документации, если этот параметр не опущен, то он должен снизить мерцание при прорисовке; diFlags—флаги прорисовки, которые могут иметь следующие значения: DI_NORMAL = 3 –прорисовка иконки полностью;

DI_IMAGE = 2 –прорисовка XOR-маски(изображение на черном фоне);DI_MASK = 1 –прорисовка AND-маски(черно-белый негатив). Для выделения иконки из exe-файла используется функция: ExtractAssociatedIcon(ByVal hInstAsLong, ByVallpIconPathAsString, lpiIconAsLong) AsLong,гдеlpIconPath—путь к exe-файлу с иконками; lpiIcon—номер иконки в файле.





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


Дата добавления: 2014-12-23; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.