最近在学习OpenGL,利用OpenGL进行场景绘制。最近遇到一个问题:为了方便调用,我是把OpenGL的实现放在一个Ocx控件里的,如果把这个控件放在MFC dialog的父窗口里,每次程序启动加载控件进行渲染是没有任何问题的,但是如果放在dialog的一个子对话框里,第一次启动子对话框的时候渲染也没问题,但是把子窗口关掉之后再重新打开,模型的颜色就全都乱了,请问有人遇到过这种情况么?不知道能否帮忙解决这个问题。谢谢啦!
PS:我是把所有的模型的颜色信息放在一个数组里面的,采用的是RGB模式进行渲染。
谢谢啦!

解决方案 »

  1.   

    子窗口关掉是隐藏还是销毁 销毁的话再创建要重新设置rendercontext 因为hdc不一样
      

  2.   

    就是domodal(),然后点ok之后,然后再domodal()就出问题了,调试过,保存颜色的数组都重新初始化了,应该没什么问题。在点了ok控件进入过Ondestroy,应该都销毁了。比如我的显示列表里面有10个模型,但是我的函数只绘制前5个,但是第二次再domodal的时候,居然多画了好几个显示列表出来。很诡异