直接在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绘图

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

OpenGL在MFC中的实现

转自http://www.cnblogs.com/carfield/archive/2011/11/20/2255780.html 1、在写代码之前,首先要做好OpenGL的环境配置。 ...
  • sircarfield
  • sircarfield
  • 2011年11月20日 10:06
  • 10377

转载:基于MFC的OpenGL绘图

转载地址: http://www.cnblogs.com/phinecos/archive/2007/07/28/834916.html   一、简介     GDI是通过设备句柄(Dev...
  • chunyexiyu
  • chunyexiyu
  • 2013年11月28日 10:48
  • 1162

MFC搭建OpenGL框架示例

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

基于MFC+vs2010实现的Opengl绘图

  • 2013年07月28日 15:27
  • 45.59MB
  • 下载

MFC的对话框中使用OpenGL绘图

我们在编写软件是总是会有自己的界面,当然利用C++就不得不和MFC打交道了,那么可视化界面通常就要用MFC的Dialog;OpenGL通常画图时会自己生成一个窗口,就如同OpenCV一样,但现在我想O...
  • u010258235
  • u010258235
  • 2014年04月16日 18:27
  • 1133

向MFC嵌入OpenGL

本人上计算机图形学课时要做的大作业是基于MFC框架用OpenGL实现一些功能。但是我一开始并不知道怎么在MFC中加入OpenGL模块。于是我在网上找了半天终于找到一篇文章,阅读之后受益匪浅。今天我准备...
  • qq_29477855
  • qq_29477855
  • 2016年08月20日 11:28
  • 130

MFC下OpenGL绘图框架

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

opengl 教程(2) 在窗口画点

http://www.cnblogs.com/mikewolf2002/archive/2012/10/23/2736195.html  原文地址:http://ogldev.ats...
  • anypkv
  • anypkv
  • 2013年10月22日 22:49
  • 1115

OpenGL绘制一个点、线、多边形

#include "stdafx.h" #include #include // #include // #include #include const int n = 20; const...
  • wangzhaolong87
  • wangzhaolong87
  • 2016年03月06日 17:52
  • 1029
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:直接在MFC的对话框上利用OpenGL绘制图形
举报原因:
原因补充:

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