【问题标题】:No scroll wheel callback on glutMouseFuncglutMouseFunc 上没有滚轮回调
【发布时间】:2015-12-30 22:44:44
【问题描述】:

最近我一直在用 C++ 和 GLUT 编写一个简单的程序,我想使用滚轮来增加/减少一些旋转速度。我发现滚轮会产生 3/4 回调(3 向上滚动 4 向下滚动)。我的问题是,在 Windows 上我根本没有回调!鼠标左键和中键单击生成 0,1 和 2,但没有滚轮。 (我在 Visual Studio 2015 和 Windows 10 上工作)在我的 Ubuntu 系统上,使用相同的库滚轮可以很好地生成回调,但在 Windows 上什么也没有。这是我在 glutMouseFunc() 上使用的代码

void setRotationSpeed(int button, int dir, int x, int y)
{
    printf("button is %d\n", button);
    if (button == 3)
    {
        rotationSpeed += 0.1;
    }
    if (button == 4)
    {
        if (rotationSpeed > 0.0)
            rotationSpeed -= 0.1;
    }
}

我没有任何运气搜索过。起初我以为我使用的库可能有问题,但后来我拿了我在 Ubuntu 上使用的库,我遇到了同样的问题,所以如果有人有什么建议我会非常感激!

【问题讨论】:

  • @BDL:这到底是怎么复制的?他不是在问怎么做。他是说他这样做了,但没有用。
  • 抱歉没有早点回复...艰难的一天(为除夕做准备)@BDL 是的,我已经阅读了那篇文章并尝试了两种方式,但我仍然没有收到任何回电鼠标滚轮(根据我的函数中的if和printf)我的一个有mac的朋友和我有同样的问题......鼠标滚轮没有回调......只有在ubuntu上鼠标滚轮是按预期工作。 ://

标签: c++ windows glut freeglut scrollwheel


【解决方案1】:

不幸的是,不能保证 glutMouseFunc 会为滚轮动作发出回调,请检查 GLUT 规范,它在 Linux 上工作的事实超出了 GLUT 规范。我认为以前有类似 glutMouseWheelFunc 的东西,现在没有选项可以获取关于轮子的任何回调,这不是特定于实现的。 您仍然可以尝试使用 FreeGLUT 库,它更新且跨平台,确保实现了滚轮动作。 祝你好运。

【讨论】:

  • 我确实使用了 freeglut 库,但没有任何运气。当我使用鼠标滚轮时仍然没有反应。我相信它与操作系统有关,而不是与库有关。不过谢谢
猜你喜欢
  • 1970-01-01
  • 2018-08-20
  • 2014-08-06
  • 2015-09-04
  • 2016-12-09
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多