Библиотека ImageList
олезные дополнительные функции обработки 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
|