gpt4 book ai didi

c++ - 在 Windows X 按钮上单击并按住鼠标时 WM_TIMER 消息被抑制

转载 作者:可可西里 更新时间:2023-11-01 09:46:09 25 4
gpt4 key购买 nike

我正在开发一款客户端需要继续处理 Windows 消息的游戏,否则游戏可能会被利用。为了解决窗口调整大小和拖动事件期间的这个问题,我们有一个每 50 毫秒触发一次的 WM_TIMER 消息,这将重新启动主事件循环。

问题是,当用户单击并按住 X 或窗口客户端的最小化按钮时,此技术不起作用。 (所以他们没有完成点击,他们只是停止了客户端。)

使用 Spy++,我看到的最后消息是:

<00731> 00160D3C P WM_NCLBUTTONDOWN nHittest:HTCLOSE xPos:1150 yPos:178
<00732> 00160D3C P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:1014 yPos:-23

在我移动鼠标之前什么也没有,在我松开鼠标按钮之前没有 WM_TIMER 消息。

所以问题是,当我将鼠标悬停在窗口的 X 按钮上时,我可以关闭某些东西来让客户端再次移动吗?或者我可以做些什么来触发我们的“看门狗”WM_TIMER 消息?

最佳答案

一些系统事件,如系统菜单(如您的情况)或窗口大小调整会暂时停止处理常规窗口消息。您需要重新考虑您的体系结构,并可能在辅助线程中运行定期操作。在那里您可以使用 WaitForSingleObject 或只是 Sleep() 而不是基于消息的计时器。

关于c++ - 在 Windows X 按钮上单击并按住鼠标时 WM_TIMER 消息被抑制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com