Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Белый цвет в окне при классической теме Win 7

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я врядли смогу, толком как окно рисуется не помню, поковыряюсь еще, но ты лучше не надейся

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 22:09 20-03-2017
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если цвет этой детали задается общими настройками системы, то пропатчить дллку скорее всего не получится. инжектированием надо делать

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 08:42 21-03-2017 | Исправлено: bomzz, 09:07 21-03-2017
T2008

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Общие настройки системы устанавливают просто цвет фона окна.
Нужно найти где передаётся параметр цвета при прорисовке "меседжбокса" и вместо переменной вписать в этом месте значение цвета цифрами. ТОгда в месседжбоксе оно будет серым, а во всех остальных окнах системы останется как и было.

Всего записей: 1496 | Зарегистр. 25-10-2008 | Отправлено: 14:41 21-03-2017
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
получается что общие настройки фона окна используются для прорисовки этой белой накладки на диалоговое окно, то есть в теле дллки нет отдельной перменной которая задает этот белый цвет и просто его исправив задачу не решить, это надо обрезать часть кода если это возможно типа такого. нашел у себя работающий пример инжектирования как раз функции mesagebox, когда то давно разбирал для примера, ноуже в упор не помню в чем там суть. может поковыряюсь. семерки правда все равно под рукой нет

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 15:01 21-03-2017
T2008

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
А не надо никакой переменной... Цвет же этой накладки где-то задается, каким-то параметром функции.  
Например messagebox(param1, param2, color, param 3)
Вот вписать туда прямо числовые значения - messagebox(param1, param2, 0x33FF55, param 3)

Всего записей: 1496 | Зарегистр. 25-10-2008 | Отправлено: 15:28 21-03-2017 | Исправлено: T2008, 15:28 21-03-2017
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет в функцию передаются только четыре параметра перечисленные в описании, а цвет везде одинаковый

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 15:34 21-03-2017
T2008

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как-же он в ХР сделано... Ведь там нигде этого белого поля нет.

Всего записей: 1496 | Зарегистр. 25-10-2008 | Отправлено: 04:09 22-03-2017
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну когда дллку для семерки переделывали взяли прилепили эту белую налипку сверху. код переписали. и по второму разу с людей бабки взяли за пейзаж в окне

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 22:48 21-03-2017
T2008

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну так пусть эти пейзажи отображаются в "стандартных" и модерновых темах...
А "классические" окна продиктованы стилем с Вин 95-98-2000-ХР и не менялись 10 лет.
На то это и классика.
Сложно ли найти, где эта налипка берётся и заменить код инструкциями "nop".

Всего записей: 1496 | Зарегистр. 25-10-2008 | Отправлено: 14:03 22-03-2017
HNKTO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сложно ли найти, где эта налипка берётся и заменить код инструкциями "nop".

описал тут: http://forum.ru-board.com/topic.cgi?forum=33&topic=4338&start=7560#7
там наворотили предостаточно.

Цитата:
А как-же он в ХР сделано

не сделано. Ничего там дополнительно не рисуется.

Цитата:
вместо переменной вписать в этом месте значение цвета цифрами

В логичном подходе - константа, скорей всего COLOR_BTNSHADOW (не могу точно вспомнить, какая указывает цвет диалогового окна), причём в типовом подходе допустимо а-ля
FillRect(hdc, &rt, (HBRUSH) COLOR_BTNSHADOW) (ну и ещё много где оно как HBRUSH катит) но опять-же х.з. как M$ это сделала.

Всего записей: 2092 | Зарегистр. 30-01-2010 | Отправлено: 19:15 24-03-2017
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HNKTO
я не особо понял, ты сильно круто написал, инжектирование поможет?
получается что все таки пропатчить можно, он же обращается к системному цвету используя переменную, ее можно изменить на другую

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 19:26 24-03-2017 | Исправлено: bomzz, 06:48 25-03-2017
T2008

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HNKTO

Цитата:
Да. Прикол. Включение классической темы выводит месседжбоксы в полоску. Причём эта белая полоса не что-то там а COLOR_WINDOW, чтоб жизнь малиной не казалась. M$ жжёт. Причём эти полоски - не куски контролов а в WM_PAINT зашиты, причём с закладкой включения только по включению "классических" скинов. Это-ж надо было отдельно заморочится.  
Тут похоже без создания собственного MessageBox() не обойдёшся, впринципе последний сделать просто, но вот как засунуть его в систему? или дизассемблером искать в процедуре отрисовки окна эту закладку.  
 
Добавлено:  
++ подзабыл. В типовом понимании контролы "static" рисуют свой текст в OPAQUE режиме и без стиля WS_EX_TRANSPARENT у самого окна контрола тоже есть фон, равный фону диалогового окна (серый), т.е. незнаю как там в семёрке, может и это глобально переиначили, но если нет - там отдельно ещё с настройкой статика с текстом сообщения и статика с иконкой заморочились, причём через жопу т.к. WS_EX_TRANSPARENT у них нету и следовательно сделано это в лучшем случае просто стандартным вмешательством в оконную процедуру контрола.

 
Спасибо. Но честно говоря, вряд ли кроме вас, кто-то это понял.
Можете помочь и пропатчить данный файл или конкретнее написать,
что нужно сделать. Ну чтобы понятно было не только спецам, а и таким как я.

Всего записей: 1496 | Зарегистр. 25-10-2008 | Отправлено: 16:45 27-03-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Белый цвет в окне при классической теме Win 7


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru