使用SDL2捕获击键

时间:2014-03-12 23:20:08

标签: c++ sdl sdl-2

有2个与使用SDL2相关的问题。

  1. 我想在我的C ++应用程序中捕获所有键盘输入。该应用程序是一个COM dll,它将在后台运行并捕获所有输入。所以这个应用程序没有窗口,在这种情况下是否可以捕获键盘输入?如果是,怎么样?
  2. 我见过SDL2的例子,他们首先创建一个SDL窗口,然后捕获键盘输入。但我不想要那个。我想要的是我的应用程序能够自己捕获所有键盘输入。

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

3 个答案:

答案 0 :(得分:0)

你可以使用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

答案 1 :(得分:0)

  

所以这个应用程序没有窗口,在这种情况下是否可以捕获键盘输入?

不使用SDL。

  

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

sounds就像你可能会对SDL_CreateWindowFrom()感到幸运。

答案 2 :(得分:0)

您可以尝试使用带有SDL_WINDOW_HIDDEN标志的窗口。这样我就可以假设你可以在没有窗口弹出的情况下输入sdl函数。

不确定这是否是您想要的,但我希望它有所帮助。