我正在尝试在我的OpenGL应用程序中使用GLUT(freeglut),我需要为鼠标滚轮事件注册一些回调。我设法挖出一个相当无证的功能:
但是这个函数的手册页和API条目都说明了同样的事情:
注意:由于缺乏相关信息 老鼠,这是不可能的 在X上正确实现这一点 时间。使用此功能限制了 您的应用程序的可移植性。 (这个 功能确实适用于X,只是没有 可靠。)我们鼓励您使用 标准,可靠的鼠标按钮 报告,而不是车轮事件。
足够公平,但我如何使用这个标准,可靠的鼠标报告?我怎么知道哪个是标准?我是否只使用glutMouseFunc()并使用按钮值(如4和5)分别表示向上滚动和向下滚动值,例如1,2和3是左,中,右按钮?这是可靠的方法吗?
奖金问题:似乎'xev'工具报告了我的按钮的不同值。我的鼠标按钮从1到5用xev编号,但过剩是从0到4报告按钮,即逐个按钮。这是常见的吗?
答案 0 :(得分:0)
我想我可能会重新审视自己的问题,因为自从我提出这个问题已经很长时间没有任何回复了。
在前面提到的documentation中更加彻底地阅读,从我的理解来看,我的猜测似乎确实如此。
我的猜测:
我是否只使用
glutMouseFunc()
并使用 按钮值如4和5的 分别向上和向下滚动值 [...]
我还没有测试过,但是根据文档中的以下引用,我认为这确实是他们的意思。
如果您没有注册车轮 回调,轮子事件将 报告为鼠标按钮。