【发布时间】:2011-11-08 16:34:36
【问题描述】:
我正在开发一款客户端需要继续处理 Windows 消息的游戏,否则该游戏可能会被利用。为了在窗口调整大小和拖动事件期间解决这个问题,我们有一个WM_TIMER 消息,每 50 毫秒触发一次,这将重新启动主事件循环。
问题在于,当用户单击并按住窗口客户端的 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 消息触发?
【问题讨论】:
标签: c++ windows windows-messages