我正在mac上开发一个GLUT程序. Mac似乎以有趣的方式通过GLUT传递修饰符. glutGetModifiers()不会捕获Alt键和控制键,而是将它们转换为按钮int. glutGetModifiers()或按钮int似乎没有捕获命令键.此外,它不会显示为我的glutKeyboardFunc(…)中的键.
有没有办法捕获/检测GLUT中的命令(苹果)键?
最佳答案
glutGetModifiers
仅检测CTRL,ALT和SHIFT,而不是⌘键.
我知道如何做到这一点的唯一方法是使用Carbon,
#include <Carbon/Carbon.h>
KeyMap keyStates ;
bool IS_KEYDOWN( uint16_t vKey )
{
uint8_t index = vKey / 32 ;
uint8_t shift = vKey % 32 ;
return keyStates[index].bigEndianValue & (1 << shift) ;
}
void checkInput()
{
// This grabs all key states, then checks if you were holding down ⌘ or not
GetKeys(keyStates) ;
if( IS_KEYDOWN( kVK_Command ) )
puts( "⌘" ) ;
}