是否可以在没有窗口的情况下使用Windows Raw Input API(即从控制台应用程序)?

Ada*_*M-W 4 windows console raw-input message-loop

是否可以在没有窗口的情况下使用Windows Raw Input API(即从控制台应用程序)?

我尝试过使用RegisterRawInputDevices,但我的消息循环似乎没有从GetMessage 获取任何事件,因此只是"挂起".

小智 6

这样我做到了(不确定它是最舒服的方式......):

我已经启动了一个线程(用于填充输入缓冲区的任务).在这个线程中,我创建了一个只有消息的窗口(它是隐藏的,并且可以获取输入数据),并且具有适当的窗口类.

然后注册原始输入设备.

该线程有自己的消息处理程序循环.在窗口类的WindowProc中,我处理了输入.

(对于缓冲区,你可以使用boost:circular_buffer,它ROCKS!:D)

在这个解决方案中你确实需要一个窗口,但它看起来像你没有.:)

我希望这可以提供帮助.