我探测到关键急迫性,对用fn(功能)、ctrl(控制)、alt(功能)和fn(功能)检测有某些问题。
我可以检测空间栏、 输入、 ESC、 字母、 数字和光标。 但我无法检测我之前告诉过的特殊密钥 。 当我按下这些密钥时, 这两种方法都不显示屏幕上的任何信息 。
检测普通密钥 的方法
void KeyboardFunc(unsigned char key, int x, int y)
{
int numeros;
Key[key] = true;
cout << "-----------------" << endl;
cout << "PULSE " << (int) key << endl;
cout << "-----------------" << endl;
if(key >= 48 && key < 58)
{
numeros = key;
key = a ;
}
switch ( key )
{
case : // Space bar
cout << "Barra Espaciadora pulsada." << endl;
break;
case 13: // #13 es Enter
cout << "Enter pulsada." << endl;
break;
case 27: // "27" is the Escape key
cout << "Tecla ESC pulsada." << endl;
exit(1);
case a : // Teclado numérico.
cout << "Número pulsado: " << numeros - 48 << endl;
key = numeros;
}
}
检测特殊密钥的方法:
void SpecialFunc(int key, int x, int y)
{
Arrow[key] = true;
cout << "-----------------" << endl;
cout << "ESPECIAL PULSADO: " << (int) key << endl;
cout << "-----------------" << endl;
switch ( key )
{
case GLUT_KEY_UP: // #73 es cursor arriba
cout << "Cursor ARRIBA pulsada." << endl;
break;
case GLUT_KEY_DOWN: // #81 es cursor abajo
cout << "Cursor ABAJO pulsada." << endl;
break;
case GLUT_KEY_LEFT: // #73 es cursor izquierda
cout << "Cursor IZQUIERDA pulsada." << endl;
break;
case GLUT_KEY_RIGHT: // #81 es cursor derecha
cout << "Cursor DERECHA pulsada." << endl;
break;
case 30: // #30 es alt_a
cout << "Tecla ALT pulsada." << endl;
break;
}
}