Rap*_*tor 5 c++ windows keyboard winapi raw-input
我有一个仅消息窗口(ATL :: CWindowImpl),它使用RIDEV_INPUTSINK标志为原始输入注册自己,这意味着无论窗口是否是前台窗口,它都会获得所有输入.当只有一个窗口的实例时,这很有效.
但是,当我创建多个窗口实例时,只有一个接收WM_INPUT消息(我当前正在创建两个消息,并且只有第二个要创建消息).
在创建两个窗口期间,RegisterRawInputDevices(使用RIDEV_INPUTSINK | RIDEV_NOLEGACY)正在成功.此外,没有接收原始输入的窗口仍在接收其他消息,因此窗口本身不存在问题......
如果它是相关的,我正在使用VC11测试版,并创建窗口并在不同的线程上调度消息(使用std :: thread).
这是API限制(即每个进程只限一个输入接收器)吗?或者有没有办法让这个工作?
提前致谢.
编辑:
现在我当前的解决方法是只有一个窗口,并将输入消息传递给其他窗口,但这是一个烂摊子,并且在我希望它工作的情况下不能工作(我有我的地方) app加载可能需要原始输入的插件,我不希望他们必须注册我的应用程序,除非我真的必须这样做...).