手把手教你搭建用MFC进行OpenGL编程的框架.doc

手把手教你搭建用MFC进行OpenGL编程的框架.doc

ID:58855608

大小:252.00 KB

页数:85页

时间:2020-09-23

手把手教你搭建用MFC进行OpenGL编程的框架.doc_第1页
手把手教你搭建用MFC进行OpenGL编程的框架.doc_第2页
手把手教你搭建用MFC进行OpenGL编程的框架.doc_第3页
手把手教你搭建用MFC进行OpenGL编程的框架.doc_第4页
手把手教你搭建用MFC进行OpenGL编程的框架.doc_第5页
资源描述:

《手把手教你搭建用MFC进行OpenGL编程的框架.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、手把手教你搭建用MFC进行OpenGL编程的框架第一步:创建项目文件File

2、

3、New

4、

5、Project

6、

7、MFCAppWizard(exe)

8、

9、输入ProjectName

10、

11、创建一个基于SDI,View类基于CView的工程文件;第二步:向项目文件中添加OpenGL的绘图函数Project

12、

13、Settings

14、

15、在Object/librarymodules:中输入opengl32.lib,glu32.lib,glaux.lib,三者之间用空格隔开,逗号不用输入;第三步:添加一些代码1)在项目工作区的FileView中找到StdAfx.h,添加

16、下面的代码:#include#include#include2)在项目工作区的ClassView中找到CView类,右击CView类,选择AddMemberVairable,添加一个成员变量HGLRCm_hRC;选择AddMemberFounction,添加一个成员函数voidDrawScene();3)在项目工作区的ClassView中找到CView类,右击CView类,选择AddWindowsMessageHandler,为CView类添加WM_CREATE,WM_DESTORY

17、(方法:在左边的Newwindowsmessage/events中选中并双击,然后点击OK)。在项目工作区的ClassView中找到CView类,找到函数OnCreate(),在该函数中添加如下代码://定义像素存储格式PIXELFORMATDESCRIPTORpfd={sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW

18、PFD_SUPPORT_OPENGL,PFD_TYPE_RGBA,24,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,PFD_MAIN_PLANE,0,0,

19、0,0,};CClientDCdc(this);intpixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd);BOOLsuccess=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd);m_hRC=wglCreateContext(dc.m_hDC);同理找到函数OnDestory(),在该函数中添加下面的代码:wglDeleteContext(m_hRC);4)在类CView中的函数PreCreateWindows()中添加下面的代码:cs.style

20、=(WS_CLIPSIB

21、LINGS

22、WS_CLIPCHILDREN);5)在类CView中的函数OnDraw()中添加下面的代码:wglMakeCurrent(pDC->m_hDC,m_hRC);DrawScene();//用户自定义的场景绘制函数wglMakeCurrent(pDC->m_hDC,NULL);这样,一个基于OpenGl标准的程序框架已经构造好了,用户只需在DrawScene()函数中添加程序代码即可。为了验证程序框架的是否正确,请在DrawScene()函数中添加下面的代码:glBegin(GL_TRIANGLE_STRIP);glColor3f(1

23、.0,0.0,0.0);glVertex3f(0.0,0.0,0.0);glColor3f(0.0,1.0,0.0);glVertex3f(-0.5,0.0,0.0);glColor3f(0.0,0.0,1.0);glVertex3f(0.0,0.5,0.0);glEnd();glFlush();然后编译执行直至在MFC窗口中绘制出了一个顶点颜色不同的三角形即可。//MeshView.cpp:implementationoftheCMeshViewclass//#include"stdafx.h"#include"Mesh.h"#include

24、"MeshDoc.h"#include"MeshView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CMeshViewIMPLEMENT_DYNCREATE(CMeshView,CView)BEGIN_MESSAGE_MAP(CMeshView,CView)//{

25、{AFX_MSG_MAP(CMeshView)ON_WM_PAINT()ON_WM_DESTROY()ON_WM_SIZE()ON_WM_LBUTTO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。