c++ - glutMouseFunc 上没有滚轮回调

标签 c++ windows glut freeglut scrollwheel

最近我一直在用 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 上使用的库,我遇到了同样的问题,所以如果有人有什么建议,我将非常感激!

最佳答案

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

关于c++ - glutMouseFunc 上没有滚轮回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538406/

相关文章:

java - 打印 RTF 文件(带对话框)

windows - 什么时候将 "..."添加到按钮的末尾?

c++ - 在不指定名称的情况下读取图像文件

c++ - 使用函数的返回类型作为另一个模板函数调用

c - 在命令行上创建然后链接到 Win32 DLL 的确切步骤是什么?

c++ - OpenGL/Glut 光照没有意义

c - 无法旋转半立方体

c++ - OpenGL 输出窗口立即缩小到 0 x 0 窗口

c++ - 如何编写一个可控的随机数生成器?

c++ - 请求用户输入以命名使用 ofstream C++ MFC 创建的文件