Win95_NT下OpenGL编程原理

文章作者 100test 发表时间 2007:11:28 13:06:53
来源 100Test.Com百考试题网


能删除或者释放。

----6.由于OpenGL作图时需要长时间占用DC,所以最好把作图窗口类设成CS_OWNDC。MFC缺省的窗口类风格中没有设这一属性,程序中在主窗口C

类的PreCreateWindow方法中自己注册了一个窗口类,除了设定了CS_OWNDC属性以外,还设定了CS_HREDRAW、CS_VREDRAW和CS_SAVEBITS。设定

CS_HREDRAW、CS_VREDRAW是为了让窗口缩放时产生WM_PAINT消息,修正OpenGL视口和作图尺寸;由于OpenGL作图需要很多计算,设定CS_SAVEBITS是

为了在OpenGL窗口被遮盖后显现出来时,不产生WM_PAINT消息,用内存存储的图象来填充,从而用空间消耗换取计算时间。

----7.本程序中没有对OpenGL函数的出错情况作出处理。OpenGL出错后返回错误码,不会抛出异常;而且在某一个函数出错以后,后继函数也一般

不会出现异常,只是返回错误码,一不小心就可能忽略某些错误。而对每一个OpenGL函数都做出错与否的判断比较麻烦,所以编程序时对OpenGL的

函数应当非常小心。

----参考书籍:

----《OpenGLProgrammersGuide》SGIinc.

----《OpenGL三维图形程序设计》廖朵朵、张华军著,星球地图出版社

----《VisualC 5.0联机帮助》

----附程序:

----程序运行时必须确定OpenGL32.dll、glu.dll、glaux.dll在Windows的System目录下。如果找不到这些文件,可以从Windows95OSR2的机器上面

将这些文件拷贝过来即可。OpenGL运行不需要注册库信息。在VC的STUDIO中运行程序时,工程文件中必须加入OpenGL.H、glu.h、glaux.h以及

OpenGL.lib、glu.lib、glaux.lib,这些文件由VC自带。

----主窗口类定义(OpenGLWnd.h):

s#if !defined(AFX_OPENGLWND_H__3FB1AB28_0E70
_11D2_9ACA_48543300E17D__INCLUDED_)
#define AFX_OPENGLWND_H__3FB1AB28_0E70_11D2
_9ACA_48543300E17D__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include < afxwin.h >
#include "SimpleGLApp.h"
#include "resource.h"
// OpenGLWnd.h : header file
//
///////////////////////////////////////
//////////////////////////////////////
// COpenGLWnd frame

class COpenGLWnd : public CFrameWnd
{
DECLARE_DYNCREATE(COpenGLWnd)
public:
COpenGLWnd().
// protected constructor used by dynamic creation
protected:
HGLRC m_hrc.
CClientDC *m_pDC.
// Attributes
public:

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(COpenGLWnd)
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT&. cs).
//}}AFX_VIRTUAL

// Implementation
public:
virtual ~COpenGLWnd().

// Generated message map functions
//{{AFX_MSG(COpenGLWnd)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct).
afx_msg void OnSize(UINT nType, int cx, int cy).
afx_msg void OnDestroy().
afx_msg BOOL OnEraseBkgnd(CDC* pDC).
afx_msg void OnPaint().
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}.

///////////////////////////////////////
//////////////////////////////////////

相关文章


Win95_NT下OpenGL编程原理
命令行参数的分析
自己的不定参数函数的实现方法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛