MFC+OpenGL鼠标响应有关问题

MFC+OpenGL鼠标响应问题
我的程序是基于MFC的OpenGL程序,用了MFC窗口分割,左边是控件区,右边是视区。在程序中我实现了这样一个功能,就是点击左边控件区的一个按钮时,右边视区就会显示出一个对应的模型,比如说,我点击左边控件区的“汽车”按钮,右边视区就会出现“汽车”的模型。但我遇到了一个鼠标响应的问题,就是当我改变一个模型的状态时,比如用鼠标旋转当前的这个模型,或放大、缩小当前的这个模型,当我点击另一个模型时,这个模型的状态就和上一个模型的状态一样了,比如旋转到某个状态,放大、缩小到某个状态。请问是怎么回事呢?请各位大侠帮看看,先谢谢啦!以下是相关代码:

这是Render()中的代码:
glPushMatrix();
glTranslatef( m_modpos.camPos[0], m_modpos.camPos[1], m_modpos.camPos[2] );
glRotatef( m_modpos.camRot[0], 1.0F, 0.0F, 0.0F );
glRotatef( m_modpos.camRot[1], 0.0F, 1.0F, 0.0F );
glRotatef( m_modpos.camRot[2], 0.0F, 0.0F, 1.0F );

glTranslatef(m_modpos.scenePos[0], m_modpos.scenePos[1], m_modpos.scenePos[2]);
glRotatef( m_modpos.sceneRot[0], 1.0F, 0.0F, 0.0F );
glRotatef( m_modpos.sceneRot[1], 0.0F, 1.0F, 0.0F );
glRotatef( m_modpos.sceneRot[2], 0.0F, 0.0F, 1.0F );

 DrawAxis(GL_RENDER);//画十字线

if (select==0)
{
glPushMatrix();
glScalef(3.0f,3.0f,3.0f);
glTranslatef(0.0f,-5.0f,0.0f);
g_3dsModel[0]->Draw();
glPopMatrix();
}
else if (select==1)
{
glPushMatrix();
glScalef(2.5f,2.5f,2.5f);
glTranslatef(0.0f,-3.0f,0.0f);
g_3dsModel[1]->Draw();
glPopMatrix();
}
glPopMatrix();


这是鼠标响应的相关代码:
void COpenGLView::OnMouseMove(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
if(mouserightdown)
{
SetCamPos(2, -(point.y - mouseprevpoint.y) , TRUE,TRUE);
}
else if(mouseleftdown)
{
SetSceneRot(0, (point.y - mouseprevpoint.y) , TRUE,TRUE);
SetSceneRot(2, (point.x - mouseprevpoint.x) , TRUE,TRUE);
}

mouseprevpoint.x = point.x;
mouseprevpoint.y = point.y;


CView::OnMouseMove(nFlags, point);
}

void COpenGLView::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
ReleaseCapture( );
mouseleftdown = FALSE;
SetSceneRot(0, (point.y - mouseprevpoint.y) , TRUE, TRUE);
SetSceneRot(2, (point.x - mouseprevpoint.x) , TRUE, TRUE);


CView::OnLButtonUp(nFlags, point);
}

void COpenGLView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
SetCapture();
mouseleftdown=TRUE;
mouseprevpoint.x = point.x;
mouseprevpoint.y = point.y;

CView::OnLButtonDown(nFlags, point);
}

void COpenGLView::OnRButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
SetCapture();
mouserightdown=TRUE;
mouseprevpoint.x=point.x;
mouseprevpoint.y=point.y;

CView::OnRButtonDown(nFlags, point);
}

void COpenGLView::OnRButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
ReleaseCapture();
mouserightdown=FALSE;

SetCamPos(2, (point.y - mouseprevpoint.y) , TRUE, TRUE);