首页 理论教育 窗口管理器与窗口对象-操作系统实现之路

窗口管理器与窗口对象-操作系统实现之路

时间:2023-10-21 理论教育 版权反馈
【摘要】:在Hello China V1.75 GUI模块的实现中,通过一个全局对象—窗口管理器,对系统中的所有窗口进行管理。下面列举窗口管理器提供的几个常用操作函数,让读者对窗口管理器的功能有一个总体的认识。表11-4 窗口管理器函数作用表窗口管理器管理的一个最重要的全局数据结构,就是窗口树。窗口树是系统中所有窗口对象,按照其父子或兄弟等逻辑关系,组合到一起形成的一个内部数据结构。图11-12给出了Hello China窗口的相关概念。

窗口管理器与窗口对象-操作系统实现之路

在Hello China V1.75 GUI模块的实现中,通过一个全局对象—窗口管理器,对系统中的所有窗口进行管理。窗口管理器本质上是一些全局变量和全局函数的集合,这些全局变量和全局函数对系统中的窗口进行操作,比如创建一个窗口、销毁一个窗口等。同时实时记录窗口的状态,比如窗口的当前位置、当前状态(是不是焦点窗口)等信息。下面列举窗口管理器提供的几个常用操作函数,让读者对窗口管理器的功能有一个总体的认识。下面这些函数的具体应用和注意事项,暂时先不用深入追究。如果读者对Windows的API非常熟悉,就会发现这些函数有“似曾相识”的感觉。当然,它们的功能,与Windows的API还是有差别的。见表11-4。

表11-4 窗口管理器函数作用表

978-7-111-41444-5-Chapter11-39.jpg

窗口管理器管理的一个最重要的全局数据结构,就是窗口树。窗口树是系统中所有窗口对象,按照其父子或兄弟等逻辑关系,组合到一起形成的一个内部数据结构。窗口树是窗口机制实现的基础,也是本章中最重要的内容。系统中的每一个窗口,无论是由哪个线程创造的,都会被放在窗口树中的适当位置。任何一个窗口,都对应一个窗口对象。窗口对象就是一个数据结构,里面记录了与窗口有关的所有属性。我们通过分析窗口对象的定义,来解释窗口树的组织结构。在此之前,先讲解窗口对象中的其他一些相关变量。

窗口的定义如下:

978-7-111-41444-5-Chapter11-40.jpg

WndTitle就是窗口的标题,显示在窗口标题栏中。同时显示在窗口标题栏中的,还有一个关闭按钮。由于Hello China采用的是窗口固定的设计方式,即窗口一旦被创建,其大小和位置都不能变化,因此不像Windows窗口那样,在窗口标题栏中还有一个最大化和最小化按钮。图11-12给出了Hello China窗口的相关概念。(www.xing528.com)

窗口对象中的大多数变量,都是用于记录窗口布局的。表11-5对窗口对象的部分变量进行了描述。之所以用表格的方式说明,是因为这些变量的含义比较简单,一两句话就可以说清楚。对于含义比较复杂的变量,后面会逐个介绍。

978-7-111-41444-5-Chapter11-41.jpg

图11-12 窗口的相关概念

表11-5 窗口对象的部分变量含义

978-7-111-41444-5-Chapter11-42.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈