OpenGL键盘事件处理
2015-04-19 18:10
169 查看
GLUT提供了两个函数用于设置键盘事件的回调函数,一个用于处理普通按键,一个处理特殊功能按键(如箭头、F1~F12)。
先看看处理普通按键的函数:
回调函数func的第一个参数是按键的ASCII码,剩下的是按键时候的鼠标坐标。鼠标坐标是相对窗口的左上角的。
示例:
另一个处理特殊按键的函数是:
后两个参数是鼠标的坐标。
除了以上两个函数,还有一个函数用于判断CTRL,ALT和SHIFT键的状态:
通常这个函数会在键盘事件的回调函数中被调用。
先看看处理普通按键的函数:
void glutKeyboardFunc(void (*func) (unsigned char key, int x, int y));
回调函数func的第一个参数是按键的ASCII码,剩下的是按键时候的鼠标坐标。鼠标坐标是相对窗口的左上角的。
示例:
void processNormalKeys(unsigned char key, int x, int y) { if (key == 27) exit(0); }
另一个处理特殊按键的函数是:
void glutSpecialFunc(void (*func) (int key, int x, int y));回调函数的第一个参数可以是:
key常量 | 描述 |
GLUT_KEY_F1 | F1功能键 |
GLUT_KEY_F2 | F2功能键 |
GLUT_KEY_F3 | F3功能键 |
GLUT_KEY_F4 | F4功能键 |
GLUT_KEY_F5 | F5功能键 |
GLUT_KEY_F6 | F6功能键 |
GLUT_KEY_F7 | F7功能键 |
GLUT_KEY_F8 | F8功能键 |
GLUT_KEY_F9 | F9功能键 |
GLUT_KEY_F10 | F10功能键 |
GLUT_KEY_F11 | F11功能键 |
GLUT_KEY_F12 | F12功能键 |
GLUT_KEY_LEFT | 左方向键 |
GLUT_KEY_UP | 上方向键 |
GLUT_KEY_RIGHT | 右方向键 |
GLUT_KEY_DOWN | 下方向键 |
GLUT_KEY_PAGE_UP | PageUp键 |
GLUT_KEY_PAGE_DOWN | PageDown键 |
GLUT_KEY_HOME | Home键 |
GLUT_KEY_END | End键 |
GLUT_KEY_INSERT | Insert键 |
除了以上两个函数,还有一个函数用于判断CTRL,ALT和SHIFT键的状态:
int glutGetModifiers(void);它的返回值是GLUT_ACTIVE_SHIFT、GLUT_ACTIVE_CTRL和GLUT_ACTIVE_ALT的按位或。示例:
mod = glutGetModifiers(); if (mod == (GLUT_ACTIVE_CTRL|GLUT_ACTIVE_ALT)) { //TODO }
通常这个函数会在键盘事件的回调函数中被调用。
相关文章推荐
- opengl glut中处理鼠标滚轮事件
- 键盘引起的事件处理
- C#中处理鼠标和键盘的事件
- Android的键盘事件处理
- Kibo 用于处理键盘事件的Javascript工具库
- Java Swing事件处理——键盘事件及监听处理 KeyListener 按键测试
- iOS自动处理键盘事件的第三方库:IQKeyboardManager
- OpenCV之鼠标和键盘事件处理
- android的frameworks层键盘事件处理流程分析
- 自动处理键盘事件的第三方库 IQKeyboardManager
- CCKeypadDelegate(Delegate 授权; 委托 ; 派…代表 ;键盘事件委托,就是系统捕捉到键盘事件后交由它或者它的子类处理 )
- 【 java版坦克大战--事件处理】 键盘控制小球上下左右移动
- 鼠标移出/点击div外等事件处理,及键盘操作
- JAVA进阶8.6——事件处理(3)——键盘事件
- 键盘 事件处理 -Java学习笔记(37)
- C#处理鼠标和键盘事件 选择自 cilong521 的 Blog
- 20个优秀的JavaScript 键盘事件处理库
- QT5 OpenGL (六, 键盘事件, 开关灯,放大缩小综合运用)
- OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]
- C#处理鼠标和键盘事件