直接在MFC的对话框上利用OpenGL绘制图形

原创 2015年05月01日 15:20:46

    借鉴前人的经验,如链接http://www.cnblogs.com/phinecos/archive/2007/07/28/834916.html介绍了如何利用MFC的单文档来使用OpenGL(本文也是借鉴了这篇文章的代码),还有的是链接http://blog.csdn.net/wangsky2/article/details/17678171介绍了在MFC对话框中使用OpenGL,但是它是使用了WM_TIMER消息。

    而我的这篇文章是没有使用WM_TIMER消息在MFC对话框中使用OpenGL,从而揭示了一个困扰我很久的问题,而这个问题其实本身与MFC自身相关的,上传的程序可以在如下的链接下载:http://download.csdn.net/detail/hurricanecqj/8650733

    先看一看程序的结果吧:

程序结果图

    一开始,我是在OnInitDialog函数里面设置像素格式以及创建OpenGL的渲染环境,然后在OnSize函数里面添加如下的视口、投影设置的代码:

  //设置视口
  glViewport(0,0,cx, cy);


  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluOrtho2D(0.0,500.0,0.0,500.0);

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();

但是,当我的程序一开始运行的时候,上面的代码根本没有起作用,显示出来的效果是平面直角坐标的中心为对话框客户区的中心,坐标系的长度为[-1,1],这到底是什么原因了?我试验了很久,最终解决了,原来MFC是先调用OnSize函数,然后再调用OnInitDialog函数的,所以,一开始由于还没有成功初始化OpenGL,因此在OnSize函数里面的OpenGL代码是无效的,解决办法我想到了两个

    1)就是在OnInitDialog函数中,OpenGL初始化代码完成后,加入上面的代码;

    2)或者在PreSubclassWindow函数中放入OpenGL初始化代码(也就是设置像素格式和创建OpenGL渲染环境)。

 

MFC 中配置OpenGL环境

MFC为编写Windows应用程序提供了极大的方便,程序员在编写Windows应用程序时,只需要几步就可以把一个程序的框架建立起来.该类极大的提高了编程者的开发效率,是个具有极大实用价值的工具. ...
  • xiaoge132
  • xiaoge132
  • 2016-03-09 09:45:49
  • 2916

《基于MFC的OpenGL编程》Part 0 基于MFC的OpenGL基本框架

《基于MFC的OpenGL编程》Part 0 基于MFC的OpenGL基本框架                                                             ...
  • sinat_24206709
  • sinat_24206709
  • 2016-03-09 15:40:58
  • 1740

VS2012 +MFC+ OPenGL环境搭建

这里以MFC单文档程序为例。框架的代码是基于NEHE的OPenGL教程的,应该放在负责视图的View.cpp中,笔者的项目名叫迷宫,故类名为C迷宫View,下面是主要步骤: 一. 在MFC中的View...
  • hf19931101
  • hf19931101
  • 2015-12-23 19:48:00
  • 1287

MFC搭建OpenGL框架示例

本文以SDI文档结构为例,列出绘制OpenGL图形的关键步骤; (1)在单文档窗口的创建过程中设置好显示的像素格式,并按OpengL的要求设置好窗口的属性和风格 (2)获得Windows设...
  • wang15061955806
  • wang15061955806
  • 2015-10-12 14:49:11
  • 1187

VS 2012环境下使用MFC进行OpenGL编程

VS 2012下使用MFC+OpenGL基本步骤 引子:以前一直惧怕MFC感觉它是一个非常复杂的东西,更不用说去用它来和OpenGL结合了,以前是一直羡慕别人用MFC创建一个窗口进行OpenGL绘图...
  • bbppbb
  • bbppbb
  • 2014-04-22 21:11:59
  • 7113

如何在VC++中用MFC进行OpenGL编程

  • 2017年09月07日 12:15
  • 262KB
  • 下载

VS2013用MFC制作包含菜单的OpenGL程序

打开VS2013新建项目 MFC程序:命名为:MFCOpenGLDemo 单击确定 下一步建一个基于对话框的程序 单击完成:...
  • Tan_HandSome
  • Tan_HandSome
  • 2015-08-01 09:42:23
  • 1846

MFC下OpenGL绘图框架

MFC下OpenGL入门 源文件 1, 建一工程文件,我这里命名为first,现在first工程里面我们没有添加任何东西,所有的东西都是MFC自动帮我们创建的。 2, 添加链接库。这...
  • u012953777
  • u012953777
  • 2017-03-20 19:52:12
  • 160

基于MFC的OpenGL绘图

一、简介     GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令...
  • linyijiong
  • linyijiong
  • 2016-12-22 22:00:34
  • 317

基于OpenGL显示平台功能开发-MFC框架篇

基于OpenGL显示平台功能开发-MFC框架篇简介关于OpenGL MFC应用程序框架的搭建,大家可以在网上找到很多相关的历程。而且按照历程的步骤,基本上可以很顺利地搭建出来。为了更能充分的帮助读者了...
  • junbincc02
  • junbincc02
  • 2016-10-25 08:09:13
  • 313
收藏助手
不良信息举报
您举报文章:直接在MFC的对话框上利用OpenGL绘制图形
举报原因:
原因补充:

(最多只允许输入30个字)