2010-03-01 49 views
1

我想在我的OpenGL應用程序中使用GLUT(freeglut),並且我需要爲鼠標滾輪事件註冊一些回調。我設法挖掘出一個相當無證功能:標準和可靠的GLUT鼠標報告

api documentation

但手冊頁和該功能都狀態同樣的事情API入口:

注:由於缺乏相關信息 鼠標,這是不可能的, 在這個 時間在X上正確實現這個。使用此功能會限制應用程序的可移植性。 (這個 功能可以在X上工作,而不是在 下可靠。)鼓勵您使用 標準,可靠的鼠標按鈕 報告,而不是輪子事件。

不夠公平,但我該如何使用這種標準的可靠鼠標報告?我怎麼知道哪個是標準?我只是使用glutMouseFunc()並分別使用按鈕值(如4和5)作爲向上和向下滾動值,例如,如果1,2和3是左,中和右按鈕?這是可靠的方法嗎?

獎金問題:它似乎'xev'工具報告我的按鈕不同的值。我的鼠標按鈕用xev編號從1到5,但是glut是報告從0到4的按鈕,即一個一個的。這是常見的嗎?

回答

0

我以爲自己可能會重提我自己的問題,因爲我已經很長時間沒有回答任何問題了。

在前面提到的documentation處讀得更徹底,從我的理解看來,我的猜測似乎確實如此。

我的猜測:

難道我只是用glutMouseFunc(),並使用像4,5 按鈕值的 上下滾動值分別 [...]

我還沒有測試過它,但從文檔中的以下引用中,我瞭解到這的確是他們的意思。

如果不註冊輪 回調,輪事件將被 報告爲鼠標按鈕。