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

来源:百度文库 编辑:神马文学网 时间:2024/03/29 19:37:24
第一步:创建项目文件
File || New || Project || MFC AppWizard (exe) || 输入Project Name || 创建一个基于SDI,View类基于CView
的工程文件;
第二步:向项目文件中添加OpenGL的绘图函数
Project || Settings || 在Object/library modules:中输入opengl32.lib,glu32.lib,glaux.lib,三者之间用空
格隔开,逗号不用输入;
第三步:添加一些代码
1)在项目工作区的FileView中找到StdAfx.h,添加下面的代码:
#include
#include
#include
2)在项目工作区的ClassView中找到CView类,右击CView类,选择Add Member Vairable,添加一个成员
变量HGLRC m_hRC;选择Add Member Founction,添加一个成员函数void DrawScene();
3)在项目工作区的ClassView中找到CView类,右击CView类,选择Add Windows Message Handler,为
CView类添加WM_CREATE,WM_DESTORY(方法:在左边的New windows message/events中选中并
双击,然后点击OK)。
在项目工作区的ClassView中找到CView类,找到函数OnCreate(),在该函数中添加如下代码:
//定义像素存储格式
PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|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,0,0,
};
CClientDC dc(this);
int pixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd);
BOOL success=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd);
m_hRC=wglCreateContext(dc.m_hDC);
同理找到函数OnDestory(),在该函数中添加下面的代码:
wglDeleteContext(m_hRC);
4)在类CView中的函数PreCreateWindows()中添加下面的代码:
cs.style|=(WS_CLIPSIBLINGS|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.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窗口中绘制出了一个顶点颜色不同的三角形即可。