информационная безопасность
без паники и всерьез
 подробно о проекте
Портрет посетителяСетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры опять разморозили холодильники... 
 C3RB3R шифрует NAS Synology через... 
 Chainalysis раскрыла взлом собственных... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
дисейбленные иконки как в тулбарах 28.01.02 17:01  Число просмотров: 1312
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> на самом деле всё гораздо проще:
> у телбара есть простой image list и hot image list
> если hot image list не указан то используется простой,
> а если указан то когда курсор над кнопкой берётся картинка
> из hot image list, а когда нет то из простого image list. В
> эксплорере именно так и реализовано... Открой
> system32\brouseui.dll как ресурс и ты увидешь все тулбары и
> как они сделаны

Так то оно так, но вопрос был не про то откуда берутся серые тулбары и иконки, которые можно заранее заготовить и запихнуть в длл, а как DrawState делает их такими в рантайме, когда есть только оригинал и про их "серость" никому ничего неизвестно.
<programming>
дисейбленные иконки как в тулбарах 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





Рейтинг@Mail.ru


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