Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
дисейбленные иконки как в тулбарах 28.01.02 09:59
Автор: ggg <ggg> Статус: Elderman
|
как такое сделать во время выполнения программы, если есть только нормальная цветная иконка ?
имеется в виду не серые картинки, как в эксплорере 98/2к, которые становятся цветными, когда мышью проводишь, а вдавленные картинки, на которые нажать нельзя
|
 |
дисейбленные иконки как в тулбарах 28.01.02 16:35
Автор: YURICH Статус: Незарегистрированный пользователь
|
> как такое сделать во время выполнения программы, если есть > только нормальная цветная иконка ? > > имеется в виду не серые картинки, как в эксплорере 98/2к, > которые становятся цветными, когда мышью проводишь, а > вдавленные картинки, на которые нажать нельзя
на самом деле всё гораздо проще:
у телбара есть простой image list и hot image list
если hot image list не указан то используется простой,
а если указан то когда курсор над кнопкой берётся картинка из hot image list, а когда нет то из простого image list. В эксплорере именно так и реализовано... Открой system32\brouseui.dll как ресурс и ты увидешь все тулбары и как они сделаны
|
 |  |
дисейбленные иконки как в тулбарах 28.01.02 17:01
Автор: Xan Статус: Незарегистрированный пользователь
|
> на самом деле всё гораздо проще: > у телбара есть простой image list и hot image list > если hot image list не указан то используется простой, > а если указан то когда курсор над кнопкой берётся картинка > из hot image list, а когда нет то из простого image list. В > эксплорере именно так и реализовано... Открой > system32\brouseui.dll как ресурс и ты увидешь все тулбары и > как они сделаны
Так то оно так, но вопрос был не про то откуда берутся серые тулбары и иконки, которые можно заранее заготовить и запихнуть в длл, а как DrawState делает их такими в рантайме, когда есть только оригинал и про их "серость" никому ничего неизвестно.
|
 |
дисейбленные иконки как в тулбарах 28.01.02 13:07
Автор: Heromantor Статус: Незарегистрированный пользователь
|
|
Юзай DrawState, с флагом DSS_DISABLED|DST_ICON, и усе будет....
|
 |  |
спасибо большое, то что надо 28.01.02 23:08
Автор: ggg <ggg> Статус: Elderman
|
|
а то я уж начал руками издеваться над иконками :)
|
 |
дисейбленные иконки как в тулбарах 28.01.02 11:50
Автор: Xan Статус: Незарегистрированный пользователь
|
> как такое сделать во время выполнения программы, если есть > только нормальная цветная иконка ? > > имеется в виду не серые картинки, как в эксплорере 98/2к, > которые становятся цветными, когда мышью проводишь, а > вдавленные картинки, на которые нажать нельзя
Приглядевшись внимательно к задизейблиным изображениям видно, что они составлены всего из трех цветов: серый, белый и цвет фона. Поэтому твой вопрос сводится к другому: как используя такую "палитру" переделать исходный битмэп (иконки, кнопки и т.д.) Грубо алгоритм может выглядеть так:
белый цвет исходного бмп заменяется прозрачным, остальные цвета - серым,
а контуры изображения подводятся белым цветом (исходный рисунок смещенный вправо-вниз, только не заезжая на сам контур).
Больше ничего в голову и не приходит.
|
|
|