- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC6.0中基于MFC 和OpenGL的图形编程
VC6.0中OpenGL的图形编程
第一步:选择一个????
在Windows系统我们选择VC++ 6.0作为学习OpenGL的环境。????
第二步:安装GLUT工具包????
GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)??? /resources/libraries/glut/glutdlls37beta.zip
Windows环境下安装GLUT的步骤:??1、将下载的压缩包解开,将得到5个文件 2、以我的安装目录为例:?(1)“:\Program Files\Microsoft Visual Studio\VC98\include\GL文件夹”。把解压得到的glut.h放到这个GL文件夹里。没有GL文件夹可以自己建一个,一般都有的。???(2)“:\Program Files\Microsoft Visual Studio\VC98\lib文件夹”。把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹,即lib文件夹。???(3)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)这是非常重要的动态链接库设置!????
第三步,创建工程????
(1)VC++ 6.0中创建一个MFC AppWizard[exe]应用程序工程名为MFCOpenGL???
(2)链接OpenGL libraries:在Visual C++中先单击Project,再单击Settings,再找到Link单击,最后在Object/library modules 的最前面加上opengl32.lib Glut32.lib Glaux.lib glu32.lib 。???第四步,1, 在stdafx.h中加入下列语句:
//OpenGL?Headers#include?gl/gl.h
#include?gl/glu.h
#include?gl/glut.h
#include?gl/glaux.h
2, 打开ClassWizard,选择CMFCOpenGLView类,为下述消息加入消息处理函数:WM_CREATE (for OnCreate),
WM_DESTROY (for OnDestroy),
WM_SIZE (for OnSize),
WM_ERASEBACKGROUND (for OnEraseBkground).
3,在窗口创建之前我们必须设置窗口风格包含WS_CLIPCHILDREN和 WS_CLIPSIBLINGS,从而避免OpenGL绘制到其他窗口中去。这些应该放在PreCreateWindow()中。
BOOL?CMFCOpenGLView::PreCreateWindow(CREATESTRUCT?cs){
//?TODO:?Modify?the?Window?class?or?styles?here?by?modifying
//?the?CREATESTRUCT?cs
// An?OpenGL?Window?must?be?created?with?the?following?flags
????cs.style?|=?WS_CLIPSIBLINGS?|?WS_CLIPCHILDREN;
????return?CView::PreCreateWindow(cs);
}
4,?在CMFCOpenGLView.h中加入如下语句:
HGLRC?m_hRC;????//Rendering?Context????CDC*?m_pDC;????????//Device?Context
????BOOL?InitializeOpenGL();????//Initialize?OpenGL
????BOOL?SetupPixelFormat();????//Set?up?the?Pixel?Format
????void?RenderScene();????????????//Render?the?Scene
5,?在OnCreate中我们将通过建立像素格式和绘制上下文来初始化OpenGL. 在InitializeOpenGL()中会创建一个设备上下文(DC),为这个DC选择一个像素格式,创建和这个DC相关的绘制上下文(RC),然后选择这个RC.这个函数会调用SetupPixelFormat()来建立像素格式。
int?CMFCOpenGLView::OnCreate(LPCREATESTRUCT?lpCreateStruct)?{????if?(CView::OnCreate(lpCreateStr
文档评论(0)