2

マウスの左ボタンにはいくつかの機能があり、機能しますが、右ボタンには別の機能が必要でした。それも機能しますが、両方を含めようとすると、ボタンの 1 つの機能が停止します。私は何が欠けていますか?

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);しかし、この形式では右ボタンの機能のみが機能し、最後の 2 つの機能をコメントするglfwSetMousePosCallback( onMouseMoveRight);と、左ボタンの機能はすべて問題ありません。

両方ともうまく動作させる方法を教えてください。事前にどうもありがとうございました!

4

1 に答える 1

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 )
    {

    }
}
于 2013-01-30T13:26:04.183 に答える