在MFC单文档的对话框中进行opengl绘图的框架!

今天下到了一个单文档应用程序,其中有一个功能:在调出的对话框中设置了4个picture控件,分别设置类别为form。当鼠标在主程序中移动时,这几个控件可以分别用opengl绘制出不同的感兴趣的内容。很厉害。看了快一天终于搞懂了,现在把它的框架给单独的提了出来,,写在这里备忘一下。

first:创建一个常规的单文档应用程序,并创建一个对话框资源id_opengl,然后在上面放一个picture:id_view控件,默认类型为          form。并对这个对话框创建类,基类选择:cdialog

second:下面开始修改了。

   首先:对话框的构造函数需要修改成:CTestOpengl(CView* pView);

  CTestOpengl::CTestOpengl(CView* pView)
  {
   m_pView=pView;
  }//目的在于将视图类的pview参数传进去。

  对话框类的修改主要就这些了。

third:需要在视图类实现opengl绘图了。首先必要包含的头文件和库函数必须先弄好了。

  在视图类里面需要定义一下三个函数:initgl(),initscene(),drawscene()。

  然后在视图类的ondraw函数中进行如下调用:

   CDC* dc=testgl->GetDlgItem(IDC_OPENGL)->GetDC();
  wglMakeCurrent(dc->GetSafeHdc(), m_hRC);
  DrawScene();
  SwapBuffers(dc->GetSafeHdc());
  wglMakeCurrent(0, 0);
  ReleaseDC(dc);

 

  fourth:还有其它一些小的细节,就不写了,关键是上面的几步:传入视图指针给对话框,在view类中实现opengl绘图就可以了。

ok。到此为止。效果图如下:

 

既然有人需要源码就把它贴出来吧:

在MFC单文档的对话框中进行opengl绘图的框架.rar

 

posted on 2009-03-06 17:52  oskycar  阅读(6269)  评论(13编辑  收藏  举报

导航