Eprst писал(а) 30. Января 2013 :: 07:11:Всмысле ?
Это я просто твою обработку запустил.
ЗЫ: и не нашел, где там у тебя задается цвет этот (не для конкретной формы, а для всей "1с-ины"
Попробую объяснить как на данный момент все это работает.
Начну с тулбара. Это панельки с кнопками у каждой формы + плавающие панельки самой 1С. За фон в этих панелях отвечает некая константа (в скрипте явно указан ее адрес, посколько по другому до нее не добраться). Прежде чем нарисовать саму кнопку 1С выполняет заливку фона панели.
После 1С рисует само изображение на кнопке. Для этого вызывается системная функция GetSysColor (см. MSDN) (я ее перехватываю) с параметром COLOR_BTNFACE. Это цвет "подложки" кнопки. После этого 1С вызывает ф-ю ReMapBitmap2 ( тоже перехватывается) - в ней формируется изображение для нЕактивной кнопки.
Если сравнить, как отрисованы кнопки в Плавающих панелях и в формах, то видно, что в формах они отрисованы "правильно", а в Плавающих "криво". Это происходит потому, что изображения для Плавающих панелей формируются 1 раз на этапе загрузки 1С. Для исправления ситуации я вижу 2 пути - либо разрюхать, где хранятся эти битмапы и заново их переформировать, либо внести изменения во frame.dll - адреса я знаю (думаю, что этим никто не будет заниматься).
Про то, как рисуется меню можно сказать практически тоже самое.
Вообще хочу спросить, нужны такие подробности, имеет смысл продолжать?