1

GLUT (freeglut3) を使用しています (Haskell GLUT バインディング経由)。

Graphics.UI.GLUT をインポートする

handleKBMouse :: KeyboardMouseCallback
handleKBMouse キー keyState mods mousePos = do
    印刷 (キー、keyState、mods、mousePos)

メイン :: IO ()
メイン = する
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= ただハンドルKBMouse
    メインループ

さまざまな重要なキー (例: Shift+Tab) がコールバックを呼び出さないようです。また、「mods」には win-key は記述されておらず、Ctrl、Shift、Alt のみが記述されています。

キーボード入力へのアクセスがこのように制限されていることは、実際のアプリケーション開発にとって深刻な障害です。私はここで何か間違ったことをしていますか、それともfreeglutが不自由なだけですか? GLUTは一般的に不自由ですか?

4

1 に答える 1

2

まず、Windows は Shift-Tab シーケンスをトラップするため、Win32 を直接操作しても通常は表示されません。第二に、GLUT は移植可能であることを意図しているため、Linux や MacOS などで同じキーが表示されることが期待できない場合、GLUT はそれを処理しようとさえしない可能性があります。第 3 に、GLUT 仕様が最後に更新されたのはかなり前のことです。そのため、win-key (または少なくとも同様のもの) が現在かなり一般的であっても、それが 12 年または 15 年前でなければ、GLUT はおそらく知らないでしょう。それ。

于 2010-06-13T16:27:10.567 に答える