информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsАтака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
дисейбленные иконки как в тулбарах 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к,
> которые становятся цветными, когда мышью проводишь, а
> вдавленные картинки, на которые нажать нельзя

Приглядевшись внимательно к задизейблиным изображениям видно, что они составлены всего из трех цветов: серый, белый и цвет фона. Поэтому твой вопрос сводится к другому: как используя такую "палитру" переделать исходный битмэп (иконки, кнопки и т.д.) Грубо алгоритм может выглядеть так:
белый цвет исходного бмп заменяется прозрачным, остальные цвета - серым,
а контуры изображения подводятся белым цветом (исходный рисунок смещенный вправо-вниз, только не заезжая на сам контур).
Больше ничего в голову и не приходит.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach