代码之家  ›  专栏  ›  技术社区  ›  Alec Jacobson

如何在mac上运行的glut程序中检测命令键作为修饰符?

  •  4
  • Alec Jacobson  · 技术社区  · 14 年前

    有没有办法在GLUT中捕获/检测命令(apple)键?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Community uzul    7 年前

    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( "⌘" ) ;
    }
    
        2
  •  0
  •   Alec Jacobson    11 年前

    虽然碳解决方案在某些情况下更好,但也可以直接修补和替换macosx上的GLUT框架,以支持命令键。 This patch 捕捉命令键并定义相应的修改器掩码 GLUT_ACTIVE_COMMAND