15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

C++ >>> WinAPI

Библиотека ImageList

Copyright (c) 2004 BOBKA 

Полезные дополнительные функции обработки ImageList, а так же иконок.

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

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

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

В библиотеке (пока) пять функций:

Для работы с иконками:
  Icon_CopyAsGreyScale - создаёт копию иконки в оттенках серого цвета
  Icon_CopyAsBlend50 - создаёт копию иконки осветлённую на 50%
 
и имайджлистом:
  ImageList_CopyAsGreyScale - создаёт копию в оттенках серого цвета
  ImageList_CopyAsBlend50  - создаёт копию осветлённую на 50%
  ImageList_CopyAsDisabled - создаёт копию осветлённую на 50% и в оттенках серого

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

Возьмем, к примеру, кнопку из Windows XP. Появившееся сообщение BCM_SETIMAGELIST позволяет задать кнопке иконки на каждое из состояний посредством имайджлиста. Кстати, удобная вещь, подобного раньше можно было добиться лишь используя оунердрав. Теперь об этом даже и не вспоминают.

А рисование бесконечного количества значков для тулбара! Стоит неправильно поставить единственную точку но рисунке - и в неактивном режиме страшно взглянуть на это.

Не буду здесь разбирать каждую функцию - их использование дано в примерах, а их исходный текст расписан достаточно подробно.

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

Скачать: Библиотеку функций ImageListEx (2,8 кБ)
Скачать: Пример для Button'а под ВинХР (11,8 кБ)
Скачать: Пример для ToolBar'а под Вин98 и круче (12 кБ)

Все примеры под VS 6 и VS.NET

Приятной разработки программ с удобным интерфейсом!
С уважением BOBKA.