Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 144


/p>

170

171

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

Но что же происходит при создании списка изображений? Помимо создания непосредственно bitrnap'a с указанными характеристиками, функция создает контекст, совместимый с экраном, и выбирает создан­ный bitmap в качестве текущего для этого контекста. В случае маскиро­ванного bitmap'a функция создает два экранно-совместимых контекста, при этом для одного в качестве текущего она выбирает bitmap с изобра­жениями, а для другого - bitmap с масками.

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

Для того чтобы удалить список изображений из памяти (отдельные изображения, из которых состоит список, остаются на своих местах, уничтожаются только указатели, что, собственно, и делает набор изобра­жений списком), необходимо вызвать функцию ImageList_Destroy(), которая описана следующим образом:

WINCOMMCTRLAPI BOOL WINAPI ImageList_Dcstroy(HIMAGELIST himl);

Единственным аргументом этой функции является хэндл удаляемого списка изображений. Возвращенное этой функцией значение FALSE говорит о том, что при удалении списка произошла какая-то ошибка, и список из памяти не удален.

Итак, надеюсь, читатель понял, что такое список изображений и для чего он служит. Теперь возникают очередные вопросы: как добавлять изображения в список, удалять их и производить манипуляции с ними?

Для того чтобы добавить изображение в список, необходимо вос­пользоваться функцией ImageList_Add(), описание которой имеет следующий вид:

WINCOMMCTRLAPI int WINAPI ImageList_Add(HIMAGELlST him!,

HBITMAP hbmlmage, HBITMAP hbmMask);

Первый аргумент этой функции - himl - очевиден: хэндл списка изо­бражений. Второй аргумент - hbmlmage - представляет собо хэндл добав­ляемого в список изображения. Третий аргумент - hbmMask - хэндл




Начало  Назад  Вперед



Книжный магазин