0

使用 slimdx 很容易。只需注册设备和事件:

SharpDX.RawInput.Device.RegisterDevice(UsagePage.Generic, UsageId.GenericKeyboard, SharpDX.RawInput.DeviceFlags.None);
SharpDX.RawInput.Device.KeyboardInput += new System.EventHandler<KeyboardInputEventArgs>(Device_KeyboardInput);

但这不适用于 SharpDX。当我使用建议的渲染循环时,不会调用 Device_KeyboardInput:

RenderLoop.Run(renderForm, () =>
{
}

当我将 Application.DoEvents() 添加到循环中时,它以某种方式工作(鼠标工作,但键盘不是真的)。当我正确解释此slimdx 教程时,不应使用 DoEvents() 。sharpdx RawInput 仅适用于普通窗口,就像在sharpdx rawinput 示例中使用的一样。

如何将 RawInput 与带有 RenderLoop 的 SharpDX 一起使用?

4

1 回答 1

0

这是 SharpDX 的一个错误,现在已修复:http ://code.google.com/p/sharpdx/source/detail?r=5b80d6dea7f8

于 2012-02-01T06:36:21.703 回答