在处理鼠标和键盘事件之前确保我的XNA游戏具有焦点

时间:2012-03-03 23:05:39

标签: focus mouseevent xna-4.0

我正在开发一个与winforms混合的游戏(用于地图编辑器)。我面临的问题是,即使主游戏窗口没有聚焦,它仍然会收到鼠标更改事件(例如单击并移动鼠标)。

在继续处理这些事件之前,是否有办法确保我的应用程序处于焦点状态?是否存在某种内置方法?

谢谢!

2 个答案:

答案 0 :(得分:17)

使用Game.IsActive属性检查是否应该处理鼠标和键盘输入。

答案 1 :(得分:2)

如果您添加对System.Windows.Forms的引用,您可以检查XNA窗口是否处于活动状态:

if (System.Windows.Forms.Form.ActiveForm ==
    (System.Windows.Forms.Control.FromHandle(Window.Handle) as System.Windows.Forms.Form))
{
    // Active form is the XNA window.
}