一个已经写好的程序,多文档,用CSplitterWnd将窗口分割成了两个,左边关联一个视类,显示读入实体的模型,右边关联另一个视类,显示处理过后的模型。运行无问题。我自己将窗口分割成3个,前两个不变,最后一个关联一个自己建立的View类,像素格式,RC也已经创建,但总是显示不了图形,我用一个简单的opengl语句,在OnDraw里画一个三角形都显示不了。但调试时,该段语句是运行的。请问各位到底出了什么问题啊。是不是多文档模板在分割窗口后应用opengl与单文档有什么不一样的,我没注意到?拜托了,想了好几天了。
是不是要RC的设置有一些要注意的。之前看到说在OnDraw里要释放RC,在另一个视图类中才能设置新的RC,但用wglMakeCUrrent(hDC,NULL)释放之后,还不行。而且之前原代码中,两个View类也只有在OnDestroy内释放RC,左右两个窗口也是同时显示的图形。
真的拜托了,想了好几天,时间都花在这上面了,一点进展都没有。
1:我用一个简单的opengl语句,在OnDraw里画一个三角形都显示不了。
你在渲染三角形之前,模型视图矩阵、投影矩阵、视口是否已经设置。
2:但调试时,该段语句是运行的。
不管你用什么方式使该语名被执行(如定时器触发),不代表正确工作,现在就是这种情况。
是否多线程?如果不是,那就是简单的多窗口。
多个窗口对模型渲染使用的是不同的数据还是同一模型数据?
如果不是,那个RC没什么关系,如果是,你是否已经共享RC。