c++ - 特殊键输入不起作用(回车、退格、制表符等)
问题描述
我的按键代码适用于所有键盘字母,但不适用于Enteror之类的键Tab。
glfwSetCharCallback(window, character_callback);
void character_callback(GLFWwindow* window, unsigned int codepoint)
{
char c = codepoint;
printf("%c", c);
}
该功能甚至在我按下时都没有运行,Tab或者Enter它确实适用于Space栏,我将如何接收所有按键?
解决方案
您应该使用glfwSetKeyCallback
, not glfwSetCharCallback
,因为您对键而不是字符感兴趣。请参阅键盘输入文档和键盘键宏列表。
我不确定为什么Tab并且Enter不生成字符:它们通常会分别生成0x09
并0x0d
在其他工具包(例如 freeglut 和 Qt)中生成。但显然,这是 GLFW 想要的方式,请参阅他们的问题Backspace 未报告给字符回调:
elminredda 于 2017 年 4 月 12 日发表评论 •</p>
对 Enter 和 Backspace 等键使用键回调。它提供新闻、重复和发布事件。
推荐阅读
- laravel - 如果我每 15 分钟使用 Cron 作业运行我的任务调度程序,它是否仍在运行
- reactjs - tsx 文件错误;'interface' 声明只能在 TypeScript 文件中使用。?
- r - 在 R 中运行 h2o.init 函数时出错
- sql - StartDate 无效标识符
- c++ - 如何从 Bison c++ 变体中的 yy::parser::symbol_type 获取 yy::parser::token?
- vba - 我可以直接给一个对象赋值吗?
- android-studio - 每次构建后Android Studio“未找到默认活动”强制重启
- hibernate - 连接不可用,请求超时
- powerbi - 如何为 power bi 中的切片器设置默认选择并在两个切片器之间建立连接?
- c# - 记录器依赖注入,获取调用类名和源文件路径