在几乎所有的Windows应用程序中,我都注意到在非客户区域按住鼠标按钮会导致绘画停止。为什么需要这个?

例如,我有一个显示旋转立方体的Managed Direct 3D应用程序。如果我将指针放在标题栏上并按住鼠标按钮,即使我没有将任何此类条件编码到循环中,立方体也会停止旋转。

为什么画会停止?有什么好处?最重要的是,我该如何解决这个问题?

有帮助吗?

解决方案

点击标题栏后,会出现简介窗口管理器尝试确定您是否单击或开始拖动(移动窗口)时暂停。如果您仍然按住按钮,那么它就是拖动:窗口管理器设置自己的消息循环并泵送消息,直到您释放鼠标。您的窗口应该仍然能够处理消息,因为它们仍然会被调度,但如果您的动画依赖于自定义消息循环,那么您将被卡住'直到模态拖动循环结束。

通过触发动画来触发消息来解决它:计时器对我来说似乎是个不错的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top