做了一个模拟飞行的程序,但是改变窗口大小后,飞机模型大小不根据窗口大小变化,我看了下运行结果,应该是视口函数没起作用,但是看别人的程序就是这样写的,还是还需在别的地方加语句?求大侠解释
void CDrawView::OnSize(UINT nType, int cx, int cy)
{ CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if (cy==0)
{
cy=1;
}
/////////////////////////////////////////////////////////////////
//添加窗口缩放时的图形变换函数
glViewport(0,0,cx,cy);
/////////////////////////////////////////////////////////////////
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); gluPerspective(120.0f,(GLfloat)cx/(GLfloat)cy,0.9f,50000.0f); glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0,0.0);
}
void CDrawView::OnSize(UINT nType, int cx, int cy)
{ CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if (cy==0)
{
cy=1;
}
/////////////////////////////////////////////////////////////////
//添加窗口缩放时的图形变换函数
glViewport(0,0,cx,cy);
/////////////////////////////////////////////////////////////////
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); gluPerspective(120.0f,(GLfloat)cx/(GLfloat)cy,0.9f,50000.0f); glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0,0.0);
}
看看这篇文章会不会对你有帮助
http://blog.csdn.net/xianglitian/article/details/6164103
这里的控件支持窗口调整