您的位置:首页 > 其它

Glut键盘控制

2018-02-09 15:32 337 查看
在Glut中,键盘按键分两种:普通按键与特殊按键。
其中:
①  普通按键为:字母+数字,以及其他可以用ASCII表示的字母。注意ESC(对应ASCII码27)属于普通按键
②  特殊按键为:↑↓←→,PageUp,PageDown,Home,End等普通按键所使用的按键响应函数为:void glutKeyboardFunc(void(*func)(unsigned char key, int x, int y));特殊按键所使用的按键响应函数为:void glutSpecialFunc(void(*func)(int key, int x, int y));1. 普通按键响应//首先定义消息响应函数:
void processNormalKeys(unsigned char key, int x, int y)
{
switch (key)
{
case 27:
Exit(0);
break;
case 'w':
m_xRotate += 5.0f;
break;
default:
break;
}
// 刷新
glutPostRedisplay();
}
//然后调用:
glutKeyboardFunc(processNormalKeys);由上面示例代码可知,可以直接使用ASCII对应的数字来代替相应的按键。
若使用'w'这样的格式,注意里面的字母区分大小写。若使用小写,那么CapsLock未按下时按w键有效,CapsLock已按下时按w键无效;使用大写同理。2. 特殊按键响应//首先定义消息响应函数:
void processSpecialKeys(unsigned char key,
4000
int x, int y)
{
switch (key)
{
case GLUT_KEY_UP:
m_xRotate -= 5.0f;
break;
case GLUT_KEY_DOWN:
m_xRotate += 5.0f;
break;
case GLUT_KEY_LEFT:
m_yRotate -= 5.0f;
break;
case GLUT_KEY_RIGHT:
m_yRotate += 5.0f;
break;
case GLUT_KEY_PAGE_UP:
m_zRotate -= 5.0f;
break;
case GLUT_KEY_PAGE_DOWN:
m_zRotate += 5.0f;
break;
default:
break;
}
// 刷新
glutPostRedisplay();
}
//然后调用:
glutSpecialFunc(processSpecialKeys);

 附所有的特殊按键:
GLUT_KEY_F1                  F1function key
GLUT_KEY_F2                  F2function key
GLUT_KEY_F3                  F3function key
GLUT_KEY_F4                  F4function key
GLUT_KEY_F5                  F5function key
GLUT_KEY_F6                  F6function key
GLUT_KEY_F7                  F7function key
GLUT_KEY_F8                  F8function key
GLUT_KEY_F9                  F9function key 
GLUT_KEY_F10                F10function key
GLUT_KEY_F11                F11function key
GLUT_KEY_F12                 F12 function key
GLUT_KEY_LEFT              Leftfunction key
GLUT_KEY_RIGHT            Up function key
GLUT_KEY_UP                 Rightfunction key
GLUT_KEY_DOWN            Down function key
GLUT_KEY_PAGE_UP         Page Up function key
GLUT_KEY_PAGE_DOWN    Page Down function key
GLUT_KEY_HOME              Home function key
GLUT_KEY_END                End function key
GLUT_KEY_INSERT                 Insert function key
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: