我正在尝试创建一个支持淡入和淡出的窗口类,即使对于子窗口也是如此。基本上,它将WS_EX_LAYERED
样式添加到窗口,然后调用SetLayeredWindowAttributes
计时器,逐渐改变 alpha 值。
这种方法是可以的,但是如果有更高优先级的消息通过线程的消息队列,那么褪色当然会暂时中断。因此,例如,如果某处发生了一些调整大小的事件,淡出将减慢或暂时停止。
我想知道是否有某种策略可以避免这种情况。到目前为止,我唯一的解决方案是在自己的线程上创建可褪色的窗口,因此计时器消息不会被任何东西打断。该解决方案是可行的,但它确实增加了一些额外的线程复杂性,所以我希望尽可能避免它。感谢您的任何意见。