OpenGL - 使用鼠标右键和左键的操作

时间:2013-01-30 13:19:38

标签: mouse glfw

我有一些鼠标左键的功能,它可以工作,但我想为右键提供另一项功能。它也有效,但是当我尝试包含它们时,其中一个按钮的功能就停止了。我错过了什么?

void GLFWCALL onMouseRightButton( int button, int action ) {
    if( button==GLFW_MOUSE_BUTTON_RIGHT )
    {
        // ... some code
    } 
}

 void GLFWCALL onMouseMoveRight( int a, int b ) {
     if( dragging_right )
     {
         // some math 
     } 
 }

然后在初始化之后,我有:

glfwSetMouseButtonCallback( onMouseButtonLeft );
glfwSetMousePosCallback( onMouseMoveLeft );
glfwSetMouseButtonCallback( onMouseButtonRight);
glfwSetMousePosCallback( onMouseMoveRight);

但是在这种形式下只有右键的功能才有效,如果我评论最后两个功能 - glfwSetMouseButtonCallback( onMouseButtonRight);glfwSetMousePosCallback( onMouseMoveRight);,左键的所有内容都可以。

你能告诉我如何使它们都正常工作吗?非常感谢你提前!

1 个答案:

答案 0 :(得分:2)

当您拨打第二个glfwSetMouseButtonCallback时,您实际上正在覆盖最后一个回叫。您的onMouseButton[...]应该是这样的:

void GLFWCALL onMouseButton( int button, int action ) {
    if( button==GLFW_MOUSE_BUTTON_RIGHT )
    {
        // ... some code
    } 
    else if( button==GLFW_MOUSE_BUTTON_LEFT )
    {

    }
}