VC60中基于MFC和OpenGL的图形编程.docxVIP

  • 6
  • 0
  • 约5.82千字
  • 约 7页
  • 2019-03-15 发布于广东
  • 举报
VC6. 0中基于MFC和OpenGL的图形编程 第一步:选择一个开发工具 在Windows系统中,我们选择VC++ 6. 0作为学习OpenGL的环境。 第二步:安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows环境下的GLUT下载地址:(大小约为150k) http://www. opengl. org/resources/libraries/glut/glutdlls37beta? zip Windows环境下安装GLUT的步骤: 1、 将下载的压缩包解开,将得到5个文件 2、 以我的安装目录为例: c:\Program F订es\Microsoft Visual Studio\VC98\includc\GL 文件 夹”。把解压得到的glut.h放到这个GL文件夹里。没有GL文件夹可以自己建 一个,一般都有的。 c:\Program Files\Microsoft Visual Studio\VC98\lib 文件夹”。把 解压得到的glut, lib和glut32. lib放到静态函数库所在文件夹,即lib文件 夹。 把解压得到的glut, dll和glut32. dll放到操作系统目录下面的systcm32 文件夹内。(典型的位置为:C:\Windows\Systcm32)这是非常重要的动态链接 库设置! 第三步,创建并设置工程 在VC++ 6.0中创建一个MFC AppWizard[exe]的单文档应用程序,例如工 程名为 MFCOpenGLo 链接 OpenGL libraries:在 Visual C卄中先单击 Project,再单击 Settings, 再找到 Link 单击,最后在 Objcct/library modules 的最前面加Jt opengl32. lib Glut32. lib Glaux.lib glu32.lib。 第四步,初始化OpenGL绘图环境 1,在stdafx. h中加入下列语句: //OpenGL Headers ^include gl/g1. h #inelude gl/glu. h #include gl/glut. h Jtincludc gl/glaux? h 打开ClassWizard,选择CMFCOpenGLView类,为下述消息加入消息处理函数: W CREATE (for OnCreate), WM_DESTROY (for OnDestroy), WM_SIZE (for OnSizc), WM_ERASEBACKGROUND (for OnEraseBkground)? 在窗口创建之前我们必须设置窗口风格包含WS_CLIPCHILDREN和 WS_CLIPSIBLINGS,从而避免OpenGL绘制到其他窗口中去。这些应该放在 PreCreateWi ndow()中。 BOOL CMFCOpenGLView::PreCreateWindow(CREATESTRUCT cs) { // TODO: Modify the Window class or styles here by modi fying // the CREATESTRUCT cs // An OpenGL Window must be created with the following flags cs. style |= WS_CLIPSIBLINGS WS_CLIPCHILDREN; return CView::PreCreateWindow(cs); 4, 在CMFCOpenGLView. h中加入如下语句: HGLRC m hRC; //Rendering Context CDC* mpDC; //Device Context BOOL InitializeOpenGL(); //Initialize OpenGL BOOL SetupPixelFormat(); //Set up the Pixel F ormat void RcndcrSccnc (); //Render the Scene 在OnCreate ()中我们将通过建立像素格式和绘制上下文来初始化OpenGL. 在Initial izeOpenGLO中会创建一个设备上下文(DC),为这个DC选择一个像素 格式,创建和这个DC相关的绘制上下文(RC),然后选择这个RC.这个函数会调 用SetupPixelFormat ()来建立像素格式。 int CMFCOpenGLView::OnCreate(LPCREATESTRUCT IpCreateStruct) -1)if (CV i ew::OnCreate(IpCreateStruct) -1) ) r

文档评论(0)

1亿VIP精品文档

相关文档