我遇到一些与使用RIDEV_NOLEGACY标志注册的原始输入设备相关的问题。
在我的输入类中,我创建了一个线程,它创建一个仅消息窗口并注册原始输入设备。在另一个线程中,我创建了一个用于OpenGL渲染的窗口。
在指定no legacy flag之前,一切正常。也许这只是我对Windows API的无知。我试过通过::设置[Active,Foreground] Window hacks来解决第一个问题。有没有正确的方法来处理这些问题,还是应该避免禁用传统的键盘和鼠标消息?
答案 0 :(得分:2)
当您从设备注册原始输入时,无论窗口是前景还是背景,都可以获得原始数据。另一种方法是:从设备获取所有应用程序窗口的原始输入。因此,如果您通过使用RIDEV_NOLEGACY标志阻止生成旧版Windows消息,则可以防止为所有Windows生成旧版Windows消息。大多数Windows应用程序依赖于这些遗留消息才能正常运行。如果您的应用程序不是全屏应用程序,则RIDEV_NOLEGACY不是一个好主意。