我有一些鼠标左键的功能,它可以工作,但我想为右键提供另一项功能。它也有效,但是当我尝试包含它们时,其中一个按钮的功能就停止了。我错过了什么?
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);
,左键的所有内容都可以。
你能告诉我如何使它们都正常工作吗?非常感谢你提前!
答案 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 )
{
}
}