使用SDL2捕获击键

Using SDL2 for Capturing Key strokes

本文关键字:SDL2 使用      更新时间:2023-10-16

有2个关于使用SDL2的问题

  1. 我想在我的c++应用程序中捕获所有键盘输入。该应用程序是一个COM dll,将在后台运行,并将捕获所有输入。这个应用没有窗口,在这个例子中它能捕捉键盘输入吗?如果是,怎么做?

我看到过SDL2的例子,他们首先创建一个SDL窗口,然后捕获键盘输入。但我不想那样。我想要的是我的应用程序能够捕获所有的键盘输入由它自己。

  1. 如果我使用MFC创建自己的窗口,是否有可能将其附加到SDL2并在我的窗口聚焦时捕获所有键盘输入。同样,我不想创建SDL窗口。

你可以使用GetAsyncKeyState,它简单而快速,下面的代码向您展示了如何使用它。

if(GetAsyncKeyState('Q')){//if Q key has been clicked
   //Do something
}

,这里是所有关键代码的列表http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731 (v = vs.85) . aspx

这个应用程序没有窗口,在这种情况下它能捕获键盘输入吗?

Not with SDL.

如果我使用MFC创建自己的窗口,是否有可能将其附加到SDL2并在我的窗口聚焦时捕获所有键盘输入?

听起来你可能会有一些运气的SDL_CreateWindowFrom()

您可以尝试使用带有SDL_WINDOW_HIDDEN标志的窗口。这样我假设你可以得到输入与sdl函数没有窗口弹出。

不知道这是不是你想要的,但我希望它能帮助你。