基于MFC的OpenGL绘图

1、首先创建工程

用AppWizard产生一个MFC EXE项目,其他默认即可。

2、将此工程所需的OpenGL文件和库加入到工程中

在工程菜单中,选择”Build”下的”Settings”项。单击”Link”标签,选择”General”目录,在Object/Library Modules的编辑框中输入”opengl32.lib glu32.lib glaux.lib glut.lib(注:glut.lib可能并不包含在默认库中,需要下载。或者此处不添加glut.lib)”(注意,输入双引号中的内容,各个库用空格分开;否则会出现链接错误),选择”OK”结束。然后打开文件”stdafx.h”,加入下列头文件:

3、下面需要改写“OpenGLDemoView.cpp”这个文件

a)把OnPreCreate改写成如下所示:

b)在项目资源管理器中,选择ClassView标签,在OpenGLDemoView类处单击右键,选择Add Member Function,类型为BOOL,函数声明为SetWindowPixelFormat(HDC hDC)。然后同理Add Member Variable,类型int,变量名m_GLPixelIndex。以上两者均声明为Private。

回到OpenGLDemoView.cpp中,编辑函数代码:

c)同理,继续添加函数BOOL CreateViewGLContext(HDC hDC)和成员变量HGLRC m_hGLContext,代码如下:

d)用ClassWizard添加WM_CREATE的消息处理函数OnCreate,编辑OnCreate函数代码如下:

e)用ClassWizard添加WM_DESTROY的消息处理函数OnDestroy,编辑OnDestroy函数代码如下

f)编辑COpenGLDemoView的构造函数,使之如下所示:

至此,我们已经构造好了框架,使程序可以利用OpenGL进行画图了。

4、下面给出一个简单的二维图形的例子(这个例子都是以上述框架为基础的)。

a)用Classwizard为COpenGLDemoView添加WMSIZE的消息处理函数OnSize,代码如下:

b)用ClasswizardCOpenGLDemoView添加WM_PAINT的消息处理函数OnPaint,代码如下:

c)用ClasswizardCOpenGLDemoView添加WM_PAINT的消息处理函数OnDrawScene,代码如下:

5、实现结果

251659298578307

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注