ввод с клавиатуры freeGLUT

Я использую ИЗБЫТОК (freeglut3) (через привязку ИЗБЫТКА Haskell).

import Graphics.UI.GLUT

handleKBMouse :: KeyboardMouseCallback
handleKBMouse key keyState mods mousePos = do
    print (key, keyState, mods, mousePos)

main :: IO ()
main = do
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= Just handleKBMouse
    mainLoop

Кажется что различные важные ключи (например: Shift+Tab), не называют мой обратный вызов. Кроме того, "модификации" не описывает ключевое для победы, только Ctrl, Сдвиг и Высокий звук.

Наличие такого ограниченного доступа к вводу с клавиатуры является серьезным препятствием для реальной разработки приложений. Я делаю что-то не так здесь или просто freeglut просто нанесен вред? ИЗБЫТКУ наносят вред в целом?

1
задан Peaker 13 June 2010 в 15:20
поделиться

1 ответ

Во-первых, Windows перехватывает последовательность сдвига-табуляции, поэтому, даже если вы работаете напрямую с Win32, вы обычно ее не увидите. Во-вторых, GLUT предназначен для переносимости, поэтому, если вы не ожидаете увидеть тот же ключ в Linux, MacOS и т. Д., Велика вероятность, что GLUT даже не попытается с ним справиться. В-третьих, спецификация GLUT последний раз обновлялась давно назад, так что даже если win-key (или, по крайней мере, что-то подобное) сейчас довольно распространено, если это не было 12 или 15 лет назад, GLUT наверное, не узнает об этом.

2
ответ дан 2 September 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: