特殊键输入不起作用(Enter,Backspace,Tab等)

时间:2019-08-04 05:40:53

标签: c++ glfw

我的按键代码适用于所有键盘字母,但不适用于 Enter Tab 之类的键。

glfwSetCharCallback(window, character_callback);


void character_callback(GLFWwindow* window, unsigned int codepoint)
{
    char c = codepoint;
    printf("%c", c);
}

当我按下 Tab Enter 时,该功能甚至都没有运行,但是它确实适用于 Space 栏,我该怎么办关于接收所有按键?

1 个答案:

答案 0 :(得分:2)

您应该使用glfwSetKeyCallback而不是glfwSetCharCallback,因为您对键而不是字符感兴趣。请参见Keyboard Input docslist of keyboard key macros

我不确定为什么 Tab Enter 为什么不产生字符:它们通常在以下位置分别产生0x090x0d其他工具包(例如freeglut和Qt)。但是显然,这就是GLFW希望的样子,请参见问题Backspace not reported to character callbacks

  

elmindreda于2017年4月12日发表评论•

     

对Enter和Backspace之类的键使用键回调。它提供新闻,重复和发布事件。