在MFC中使用openGL.doc
文本预览下载声明
在MFC中使用OpenGL
步骤:
一 加入库文件opengl32.lib, glu32.lib, glaux.libview.h”中,加入gl.h, glu.h, glaux.h在view”类中view.h”中class C*View : public Cview中,加入public: HGLRC hglrc;
五 编辑CREATE函数://初始化像素格式
PIXELFORMATDESCRIPTOR pfd={
sizeof(PIXELFORMATDESCRIPTOR), //结构大小
1, //结构版本号
PFD_DRAW_TO_WINDOW| //在窗口中绘图
PFD_SUPPORT_OPENGL| //支持opengl
PFD_DOUBLEBUFFER, //双缓存
PFD_TYPE_RGBA, //RGBA 颜色模式
24, //24位颜色深度
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
32, //32位深度缓存
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
CClientDC clientdc(this); //获取当前DC句柄
int pf=ChoosePixelFormat(clientdc.m_hDC,pfd); //返回最佳匹配的象素格式
BOOL rc=SetPixelFormat(clientdc.m_hDC,pf,pfd); //设置象素格式
hglrc=wglCreateContext(clientdc.m_hDC); //创建绘制对象
六 编辑SIZE函数:GLsizei width=cx;
GLsizei height=cy;
CClientDC clientDC(this);
wglMakeCurrent(clientDC.m_hDC,hglrc);
glViewport(0,0,width,height);//表示视区,屏幕以(0,0)为原点,横向长width,纵向高heigth
wglMakeCurrent(NULL,NULL);
七 编辑DESTROY函数:wglDeleteContext(hglrc);
八 在“*view”类中加入成员函数void myinit()
void display()
九 编辑myinit函数:glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
十 编辑display函数:myinit();**************************
glFlush();
十一 编辑OnDraw函数:wglMakeCurrent(pDC-m_hDC,hglrc);
display();
wglMakeCurrent(pDC-m_hDC,NULL);
SwapBuffers(pDC-m_hDC);
练习一些OpenGL基本函数
一 glBegin(参数);****
glEnd();
参数取值
类型 说明 GL_POINTS 单个顶点集 GL_LINES 多组双顶点线段 GL_POLYGON 单个简单填充凸多边形 GL_TRAINGLES 多组独立填充三角形 GL_QUADS 多组独立填充四边形 GL_LINE_STRIP 不闭合折线 GL_LINE_LOOP 闭合折线 GL_TRAINGLE_STRIP 线型连续填充三角形串 GL_TRAINGLE_FAN 扇形连续填充三角形串 GL_QUAD_STRIP 连续填充四边形串 glColor3f(*,*,*); //RGB *0.0~1.0
三 点(x,y)
glPointSize(GLfloat *); //点大小 *: 0.0
glBegin(GL_POINTS);
glColor3f(*,*,*);
显示全部