设为首页 加入收藏

TOP

2.2.2 面向对象风格的框架(1)
2013-10-07 13:15:09 来源: 作者: 【 】 浏览:57
Tags:2.2.2 面向 对象 风格 框架

2.2.2 面向对象风格的框架(1)

上一节介绍了Win32 SDK风格框架的建立,以及OpenGL程序的基本运行架构,本节将要介绍面向对象风格框架的建立。

面向对象(Object Oriented,OO)是一种新的程序设计范型,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。对象是对现实世界实体的恰当抽象,它具有描述内部状态的静态属性的数据,然后加上可以对这些数据施加的操作(表示对象的动态行为)封装在一起所构成的统一体被称为类,对象之间通过消息来进行联系,通过封装实现了信息隐藏,对外只提供一个通用接口,内部细节完全被隐藏,使软件修改和维护变得非常简单;另一方面通过继承机制很好地支持了代码的重用性(reusability),也就是说,我们可以向一个已经存在的类中添加新的特性,而不必改变这个类。

下面开始一步一步建立我们面向对象风格的框架。

首先,打开VC.NET新建一个项目,如图2-4所示,选择“Win32项目”,并设置好名称和位置,点击“确定”按钮。

 
(点击查看大图)图2-4 新建项目
在“应用程序设置”中,如图2-5所示,在应用程序类型选择“Windows应用程序”,在“附加选项”中设置为“空项目”,点击完成按钮。
 
(点击查看大图)图2-5 程序设置

我们将会在该项目中建立3个主要的类:GL_Window、Keys和GL_Application,其中GL_Window类负责窗口属性的设置和更新,以及建立和删除窗口等操作。Keys类负责读取和设置键盘各个按键的状态,用于后来的人机交互。GL_Application类负责建立我们的应用程序,包括初始化、更新、绘制图形和卸载等操作,以及消息循环处理和定义程序入口等操作,下面将一一进行讲解。

1.窗口类GL_Window的设计及实现

向新建项目中增加类GL_Window,它包含程序主窗口的属性,以及建立、改变和删除窗口的方法,首先我们在头文件GLWindows.h中对类GL_Window进行定义。

 
 
 

首先,注意我们在开始的两行用了条件编译宏,由于头文件可能同时被几个文件所包含,当进行编译时,就会带来大量的声明冲突问题。于是用#ifndef、#define和#endif来把每一个头文件包含其中,这样就保证了同一个头文件只被包含一次了。

在第21行我们开始定义GL_Windows类,从第61行开始我们定义了一些成员变量,其中m_hWnd用来保存窗口句柄,m_hDC和m_hRC分别表示设备描述表和OpenGL渲染描述表, 再往下面是窗口一些属性如窗口左上角坐标、窗口及全屏模式的宽度和高度、颜色位深及全屏标志。

第23行定义了一些成员函数,首先是构造函数GL_Window(),它用来设置窗口的默认属性,实现见GLWindow.cpp中,在此列出如下:

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.2.2 面向对象风格的框架(2) 下一篇2.1.2 OpenGL渲染环境

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: