Стратегия создания гибкого дочернего окна

Я пытаюсь создать класс окна, который поддерживает постепенное появление и исчезновение даже для дочерних окон. В основном он добавляет WS_EX_LAYERED стиль к окну, а затем он вызывает SetLayeredWindowAttributes по таймеру, постепенно меняя значение альфа.

Такой подход допустим, но, конечно, затухание будет временно прервано, если через очередь сообщений потока проходят сообщения с более высоким приоритетом. Так, например, если где-то происходит какое-то событие изменения размера, затухание замедлится или временно остановится.

Мне интересно, есть ли стратегия как-то избежать этого. Пока что мое единственное решение - создать красивое окно в отдельном потоке, чтобы сообщения таймера ничем не прерывались. Это решение возможно, но оно добавляет некоторую дополнительную сложность потоковой передачи, поэтому я надеялся избежать его, если это возможно. Спасибо за любой вклад.

0 ответов

Другие вопросы по тегам