1

OpenGLアプリケーションでGLUT(freeglut)を使用しようとしていますが、マウスホイールイベントのコールバックを登録する必要があります。私はなんとか文書化されていない関数を掘り起こすことができました:

APIドキュメント

ただし、この関数のマニュアルページとAPIエントリは、どちらも同じことを示しています。

注:マウスに関する情報が不足しているため、現時点ではXにこれを正しく実装することはできません。この関数を使用すると、アプリケーションの移植性が制限されます。(この機能はXで機能しますが、確実ではありません。)ホイールイベントではなく、標準の信頼できるマウスボタンレポートを使用することをお勧めします。

十分に公平ですが、この標準の信頼できるマウスレポートをどのように使用しますか?そして、どのようにして標準がどれであるかを知ることができますか?glutMouseFunc()を使用し、上下のスクロール値にそれぞれ4や5などのボタン値を使用しますか?たとえば、1、2、3が左、中央、右のボタンである場合はどうでしょうか。これは信頼できる方法ですか?

ボーナスの質問:「xev」ツールがボタンのさまざまな値を報告しているようです。私のマウスボタンはxevで1から5まで番号が付けられていますが、glutは0から4まで、つまり1つずつボタンを報告しています。これは一般的ですか?

4

1 に答える 1

0

回答なしで質問してから長い時間が経ったので、自分の質問を再訪するかもしれないと思いました。

前述のドキュメントをさらに詳しく読むと、私の推測は確かに真実だったようです。

私の推測:

glutMouseFunc()スクロールアップ値とスクロールダウン値にそれぞれ 4 と 5 のようなボタン値を使用するだけですか [...]?

まだテストしていませんが、ドキュメントからの次の引用から、これが実際に彼らが意図したものであることがわかります。

ホイール コールバックを登録しない場合、ホイール イベントはマウス ボタンとして報告されます。

于 2010-12-22T03:47:59.397 に答える