开发环境是Visual Studio 2005。
编译没有错误,但是执行却出现了这个问题。
我在CFormView中显示OpenGL,自己定义了一个类COpenGL,问题就出在了这个类中OnSize的函数
我的OnSize函数是这样的:
{
glViewport(0, 0, cx, cy);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, 1.0, 0.1, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
把OnSize函数内部的代码隔掉,就没有问题。不隔掉就有问题。
编译没有错误,但是执行却出现了这个问题。
我在CFormView中显示OpenGL,自己定义了一个类COpenGL,问题就出在了这个类中OnSize的函数
我的OnSize函数是这样的:
{
glViewport(0, 0, cx, cy);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, 1.0, 0.1, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
把OnSize函数内部的代码隔掉,就没有问题。不隔掉就有问题。
{
...你的代码
}
还应该考虑
1 OnSize的时候view是处在当前RC下的么?如果没有,那些OpenGL函数将失效
2 先调用父类的OnSize
今天终于找到问题的出处了。
问题出在gluPerspective这一句。
用其他的投影函数,比如glFrustum或者glOrtho就没有问题。
虽然解决了问题,但是自己仍然不知道gluPerpective为什么错。