![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
volvo |
![]()
Сообщение
#1
|
Гость ![]() |
Привем всем...
Столкнулся с не совсем понятным поведением своей программы... Дело в следующем: я меняю прозрачность любого видимого окна на десктопе через получение его hWnd и SetLayeredWindowAttributes... Естественно, при закрытии своей программы, я хочу, чтобы все вернулось в первоначальный вид, для чего прохожу по списку окон, для которых прозрачность была изменена мной, и делаю их НЕпрозрачными... Проблема в том, что это (именно восстановление непрозрачности) не работает, если у "чужого" окна установлен стиль TOPMOST... Причем, если я перезапущу программу и уменьшу прозрачность вручную - все работает... Почему же не срабатывает установление SetLayeredWindowAttributes(hWnd, 0, 255, LWA_ALPHA);при закрытии моего приложения? И именно для TopMost окон, остальные же прекрасно обрабатываются... ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Значится, так... Во-первых, Bokul, Юля совершенно права - никаких вызовов RePaint я не делал, ибо это лишнее...
Второе - проблема решилась довольно просто: я при старте своего приложения запоминаю стиль и Opacity каждого окна (GetLayeredWindowAttributes, если стиль включает WS_EX_LAYERED), а при выгрузке просто восстанавливаю стили (это работает и с TopMost окнами). Кстати, что характерно, если значение Alpha меньше 255, то все отрабатывает как положено... |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 10:30 |