2011-04-01 58 views
1

我有一个直接的x C++游戏。当游戏初始化时,我使用我自己的鼠标图标并捕获鼠标和键盘,但问题是如果我最小化游戏并选择另一个窗口,例如,当我回到我的游戏屏幕时跳过歌曲媒体播放器,鼠标没有更长的作品。direct x mouse recapturing problem

据我了解,我需要重新捕获鼠标处理程序,每当应用程序获得焦点,但我如何做到这一点。

我可以简单地使用相同的鼠标代码从初始化,如果是的话,我把它放在应用程序重新获得焦点时使它运行。我的游戏在窗口模式和全屏模式下运行,这会有所作为。

谢谢

回答

0

首先,我会建议使用Windows光标API,而不是绘制鼠标自己。它会更加快速响应(不会受到低fps等的影响),而且处理起来更容易。您也可以使用动画光标。

为了捕获鼠标,您只能在按住鼠标按钮的情况下捕捉鼠标。如果没有按钮被按下并且鼠标移动到应用程序窗口之外,则失去捕捉。

为什么你甚至需要捕捉鼠标?当鼠标未被捕获时,您将获得WM_MOUSEMOVE消息等。

+0

这一点,如果我离开我的应用程序,并返回我不再获得WM_MOUSEMOVE消息,就像没有鼠标 – Skeith 2011-04-01 12:02:09

+0

那么你的应用程序中一定有问题。没有更多的信息,我无法说出可能导致它的原因。 – Thalur 2011-04-01 12:32:10