请问如何实现在VC环境下,利用OPENGL实现屏幕图形的鼠标拖动

解决方案 »

  1.   

    用glTranslate*()函数,把参数定义成变量,当鼠标移动的时候计算位移的改变,从而改变参数的值,就可以移动图形了
      

  2.   

    我有程序,给我发邮件我发给你![email protected]
      

  3.   

    在绘制要转的实物代码前加上:
    glRotated(X_Angle,1.0,0.0,0.0);
    glRotated(Y_Angle,0.0,1.0,0.0);
    其中X_Angle,Y_Angle分别是倾斜的情况,后面的坐标是转的中心。下面的代码分别是鼠标点下、鼠标移动、鼠标抬起的事件,以修改上面两个参数实现实物随鼠标旋转。void CGLDibTestView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    // remember where we clicked
    MouseDownPoint=point;
    // capture mouse movements even outside window borders
    SetCapture();
    }void CGLDibTestView::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    // forget where we clicked
    MouseDownPoint=CPoint(0,0);
    // release mouse capture
    ReleaseCapture();
    }void CGLDibTestView::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // check if we have captured the mouse
    if (GetCapture()==this)
    {
    // increment the object rotation angles
    X_Angle+=double(point.y-MouseDownPoint.y)/3.6;
    Y_Angle+=double(point.x-MouseDownPoint.x)/3.6;
    // redraw the view
    Invalidate(TRUE);
    // remember the mouse point
    MouseDownPoint=point;
    };
    }