问题:
以前在VC++6.0里面建立OpenGL视场,因为打算在VS2005下开发程序,所以要改在VS2005里面建立Open视场,因为感觉WinForm(GUI)更好,就在WinForm里面建立的OpenGL视场,因为WinForm的事件驱动机制是"委托"(delegate),同时因为也不知道怎么获得句柄,在google搜了codeproject的VC++.net以及nehe得C#的OpenGL程序和网上一个人的程序,具体是谁我忘了,我也终于可以在Winform建立OpenGL视场了。下面我就写写我的做法。
回答:
首先我把OpenGL的程序这里封装成了一个类,这让就可以和Winform.h文件分离开来。步骤和过程是这样的:首先建立一个OpenGL类,这里注意(我建立的是非托管的类),至于托管的类我没试过,所以不知道会不会出问题,
1首先在OpenGL.h的头文件里面加上:
#include<windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glaux.h>
//不知道为什么不能包含glut这个头文件要注意
#pragma comment(lib,"opengl32.lib")
#pragma comment(lib,"glu32.lib")
//查询一下为什么要加这两个库
#pragma comment(lib,"gdi32.lib")
#pragma comment (lib,"User32.lib")
其中尤其要注意的是后面两个动态链接库,不加上就会报错,因为笔者水平尚浅,所以也不深究为什么。总之一定得加上。
2然后定义这样一个类:
class OpenGL
{
public:
OpenGL();
bool Init(HDC hdc);
void InitOpenGL();
//渲染场景
void RenderScene();
void ViewPort(int x, i

本文介绍了如何在 Visual Studio 2005 的 WinForm 应用程序中创建并初始化 OpenGL 视场。通过定义一个非托管的 OpenGL 类,包含了初始化、设置像素格式、创建渲染上下文等关键步骤,并处理了窗体尺寸改变和绘图事件以显示OpenGL场景。
最低0.47元/天 解锁文章
2586

被折叠的 条评论
为什么被折叠?



