OpenGL和GLUT键盘功能
Posted
技术标签:
【中文标题】OpenGL和GLUT键盘功能【英文标题】:OpenGL and GLUT keyboard function 【发布时间】:2014-02-07 18:40:55 【问题描述】:如何注册CTRL键被按下?以下代码适用于除 CTRL 之外的所有键:
switch (key)
case GLUT_KEY_RIGHT:
cout << "right key" << endl;
glutPostRedisplay(); // Redraw the scene
break;
case GLUT_KEY_LEFT:
cout << "left key" << endl;
glutPostRedisplay(); // Redraw the scene
break;
case GLUT_KEY_UP:
cout << "up key" << endl;
glutPostRedisplay(); // Redraw the scene
break;
case GLUT_KEY_DOWN:
cout << "down key" << endl;
glutPostRedisplay(); // Redraw the scene
break;
case GLUT_ACTIVE_CTRL:
cout << "CTRL pressed" << endl;
glutPostRedisplay(); // Redraw the scene
break;
【问题讨论】:
【参考方案1】:GLUT 无法检测到只是按下 Ctrl。 Ctrl 的“枚举器”不是 GLUT_KEY_CTRL,而是 GLUT_ACTIVE_CTRL,这一事实也暗示了这一事实。
不过,你可以查询Ctrl
在按下另一个键时的状态:
case GLUT_KEY_RIGHT:
cout << "right key";
if (glutGetModifiers() & GLUT_ACTIVE_CTRL)
cout << " w/Ctrl";
cout << endl;
glutPostRedisplay(); // Redraw the scene
break;
有关详细信息,请参阅documentation of glutGetModifiers()
。
【讨论】:
以上是关于OpenGL和GLUT键盘功能的主要内容,如果未能解决你的问题,请参考以下文章