您的位置:首页 > 运维架构

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

2009-03-06 17:52 495 查看
今天下到了一个单文档应用程序,其中有一个功能:在调出的对话框中设置了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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: