mfcandopengl老外的教程果然还是非常赞的,强烈推荐原版,这篇博客简单介绍一下步骤:

        1.新建MFC工程

        2.添加Picture Control控件

        3.添加一个OpenGL控件类

        4.在MFC中使用OpenGL控件

        获取博主编译的测试工程(使用VS2013 X64平台,你还需要另外配置OpenGL相关环境),运行效果如左图所示,这个Demo还可以接受鼠标的控制,对模型进行操作。如果你需要多个OpenGL窗口,再实例化这个类,可以很轻易地实现多个窗口的绘制。这里就不翻译老外网站上的教程了,在上面给出了框架搭建的链接,这里就直接介绍该OpenGL类的使用方法吧。

        这里特别强调一下第二步,以防阅读不仔细的同学产生不必要的错误。修改Picture Control控件:visible 为 FALSE,控件ID位 IDC_OPENGL。

        你可能会有疑问,为什么visible要设置为FALSE?这里的控件只是提供了一个绘图区域的坐标信息,绘图过程是由Opengl根据坐标直接绘制的,与控件无关,如果控件存在,会遮挡住绘图区域,所以要设置visible位FALSE。

        添加OpenGL控件,这个控件类的搭建方法在这里。我在构建代码时使用的OpenGL库为glew和freeglut库,如果你刚刚接触OpenGL,本人强力推荐NeHe的OpenGL教程。这里给出这个控件类的源码:

上面是类的头,下面是类的实现。

下面进入正题,我们由教程中的方法构建了一个控件类,我们要在对话框类中使用该控件,需要在对话框类中修改如下代码:

在对话框类中包含该控件的头,并且添加控件变量

在对话框初始化时,添加如下代码:

在类向导中添加WM_SIZE消息的处理:

        这样我们就可以实现在MFC中绘制OpenGL了,如果有更多疑惑,请参照文章开头提供的源码,或者查看原版教程或对比源码(博主编译的版本和原版教程提供的源码均可编译通过),祝好。如果要使用OpenGL抓取图像,可以参照我下一篇博客。

        OK, See You Next Chapter!

发表评论

电子邮件地址不会被公开。 必填项已用*标注