引用:第七章 模块和应用程序
编制Object UNIX Class Library应用程序所要做的第一件事情是定义一个应用程序类,这个类是从Object UNIX Class Library的TApplication类派生而来的。应用程序将继承Object UNIX Class Library应用程序的下列属性:
l 生成和显示应用程序主窗口
l 初始化一个应用程序实例
l 初始化菜单对象和所有对话框
l 处理事件消息循环
l 关闭应用程序
把应用程序定义为类不仅可以继承TApplication类的属性,而且还能为它增加构造主窗口对象的能力。其中,还可以选择初始化实例重定义缺省操作,包括关闭应用程序和处理应用程序的消息。
7.1 应用程序流程
Object UNIX Class Library应用程序的主程序一般将由四个语句构成:
第一个语句通过调用初始化屏幕curses库函数来初始化应用程序屏幕窗口指针,使得所有的后续程序都能引用该窗口指针。
第二个语句通过调用应用程序对象的构造函数来生成应用程序对象。构造函数也初始化应用程序对象的数据成员。
第三个语句调用应用程序的Run成员函数,然后,它调用InitApplication来执行应用程序实例的初始化。接着,调用InitMainWindow来初始化生成主窗口,通过调用Show函数来显示主窗口。在大多数情况下,将只需要定义InitMainWindow成员函数。
之后,成员函数Run通过电泳MessageLoop来启动应用程序的执行,即开始处理传来的应用程序消息并指导应用程序动作的指令。MessageLoop的使命是处理消息循环,它能持续运行直到程序关闭。
第四个语句是关闭屏幕curses窗口,释放窗口指针,退出应用程序。
下图是Object UNIX Class Library控制应用程序流程的函数调用:
TApplication类
Run
InitMainWindow
InitApplication
MessageLoop
7.2 初始化应用程序
通过重定义那些初始化应用程序对象的成员函数,可以调整执行过程的各个部分。第一个必须编写的成员函数是InitMainWindow。
7.2.1 初始化主窗口
所有的Object UNIX Class Library应用程序都必须从TApplication类下派生。
此处是一个最小的应用程序类定义:
class ThelloApp:public Tapplication {
public:
ThelloApp(){};
Virtual void InitMainWindow(void);
};
必须定义一个InitMainWindow成员函数,它负责构造主窗口对象,而且把主窗口对象存放在应用程序对象的数据成员MainWindow之中。此处是一个InitMainWindow成员函数的例子。
void ThelloApp::InitMainWindow(void)
{
MainWindow=new TWindow("",1,0,78,25,WHITE_BLUE,
BLUE_BLUE);
}
这个简单的Object UNIX Class Library应用程序有主程序和一个TApplication的派生所构成。TApplication中定义了成员函数定义了成员函数InitMainWindow:
#include “owl.h”
//定义一个TAPplication的派生类
class ThelloApp:public Tapplication {
public:
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 对象 程序设计 面向 环境 应用程序 函数 窗口 成员 关闭 |
注册
个人空间
