怎么选择电视机尺寸:手把手教你搭建用MFC进行OpenGL编程的框架

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 00:12:46


第一步:创建项目文件

              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窗口中绘制出了一个顶点颜色不同的三角形即可。