向MFC嵌入OpenGL


      本人上计算机图形学课时要做的大作业是基于MFC框架用OpenGL实现一些功能。但是我一开始并不知道怎么在MFC中加入OpenGL模块。于是我在网上找了半天终于找到一篇文章,阅读之后受益匪浅。今天我准备把这篇文章翻译出来。

      原文地址:Setting Up OpenGL in an MFC Control

      翻译如下:

      我在网上没有看到许多文章关于集成功能的,哪怕仅仅是在一个MFC控制结构中设置基本的OpenGL窗口的文章也没有。本教程的目的是一步一步地教大家如何在MFC控制结构(例如图片控制)中初始化一个OpenGL渲染上下文(rendering context),还有基于定时器、改变大小事件、基本相机功能等的基本绘制功能。在本教程中我将在Microsoft Visual Studio .NET 2003 的环境下操作(注:译者用的是VS2015),而且我将尽量让各个水平的人都能理解。我将为初学者增加一些特定的步骤,非初学者也可以跳过这些步骤去找自己所需要的部分。无论如何,欢迎大家的评论(无论好坏),我将近我全力去更新此文直到每个人都满意。谢谢大家。那么让我们开始吧!

  第一部分:创建最初的OpenGL窗口

 第1步:创建工程

 首先我们先要创建一个MFC对话框应用程序项目。文件->新建->项目 选择MFC应用程序并将其命名为"oglMFCDialog"。把工程保存在哪里取决与你,你只要能记住你把它存到哪儿就行了。当MFC应用程序向导出现的时候,在应用程序类型中选择基于对话框然后点击完成按钮。其他附加的设置选项在用户界面功能中。比如说我就选择了最小化框。

 第2步 创建控制模块

 在资源浏览器标签中找到资源视图,展开Dialog文件夹,然后双击自动生成的IDD_OGLMFCDIALOG_DIALOG对话框。你需要添加一个控制组件用于OpenGL内容的渲染。一个简单的图片控制组件就可以,那么就在工具箱中选择Picture Control吧。

    注意:如果工具箱没有出现,在菜单栏中找视图->工具箱把它调出来。

 你可以直接将组建拽到你的对话窗口,也可以随时调整大小。

 你将需要对这个Picture Control设置一些属性值。当这个Picture Control被选中时,它的属性在右下角,设定以下属性:

 Visible:False

 ID:IDC_OPENGL

 你也许觉得很奇怪为什么将Visible属性设为False。当你在任何一个MFC中加载OpenGL渲染内容时,你能用到的只是这个控件的方形位置来辅助绘制OpenGL内容。由于一些奇怪的原因,如果Visible设为True,这个控件就会覆盖掉你的OpenGL内容。

 第3步 添加OpenGL类

 接下来,为了设置OpenGL,我选择为其添加一个单独的类。把工程里的主要部分分成单独的类,这是一个好习惯。因此我将把OpenGL和MFC分离。

 要添加一个类,点击解决方案资源管理器标签,在树中右击oglMFCDialog工程,选择添加->添加类,再从模板中选择C++类然后点击添加。当一般C++类向导出现时,设置以下属性:

 类名:COpenGLControl

 基类:CWnd

 访问(Access):public

 勾选虚析构函数

 然后点击完成,就创建成功了。

 第4步 添加项目库(Adding Project Libraries)

 由于你要用到OpenGL的渲染功能,你还需要向工程中链接一些库。在树中再次右击oglMFCDialog项目,选择属性,在属性页中选择链接器->输入,设置以下变量:

 附加依赖项:opengl32.lib;glu32.lib

 注意:这两个*.lib文件中间不要有任何空格

 第5步 设置类的变量

 在本工程的范围内,一些变量需要被添加到OpenGLControl.h中,公有的和私有的都需要,还需要添加#include语句,代码如下:

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值