Windows 窗口层次关系
- 格式:doc
- 大小:111.50 KB
- 文档页数:9
认识windows7的窗⼝和对话框认识windows7的窗⼝和对话框⼀、windows7窗⼝的构成及操作1、窗⼝构成在windows7下,程序都在各⾃的窗⼝中运⾏,掌握窗⼝的构成和操作⽅法是熟练使⽤计算机的基础。
应⽤程序的窗⼝虽然千差万别,但所有窗⼝都有着相同的结构并遵循着统⼀的操作规则。
每个程序运⾏后都在屏幕上占⽤⼀块矩形区域,这个区域称作应⽤程序窗⼝。
下图是记事本程序和画图程序在运⾏时的窗⼝。
各部分的结构如图所⽰,它们代表了两种典型的窗⼝。
1)标题栏窗⼝最上⽅的横条称作标题栏,标题栏上⼀般标着当前程序的名称和当前正在处理的⽂档的名称。
2)窗⼝最⼤化、窗⼝最⼩化和窗⼝关闭图标标题栏最右端是三个控制窗⼝的图标,这三个图标分别⽤于窗⼝的最⼤化、最⼩化和关闭。
3)窗⼝控制图标位于窗⼝左上⾓,通过该图标我们可以通过键盘来控制窗⼝的⼤⼩和移动,现很少使⽤。
按Alt+空格键可激活该图标下的菜单。
窗⼝控制菜单如下图所⽰。
激活菜单后可以通过键盘上的光标移动键(箭头键)选菜单项,回车键执⾏菜单命令,从⽽实现通过键盘完成窗⼝操作。
4)⽔平菜单栏/选项卡标签窗⼝标题栏下⽅的⼀⾏⽂字,称作窗⼝的⽔平菜单栏,相隔的每组⽂字都代表⼀组操作命令,也称作菜单项,点击某菜单项后可打开下级菜单,下级菜单也称作下拉菜单,参见下图3中的红框区域。
⽐如我们点击“⽂件”菜单项,则出现与“⽂件”操作相关的下拉菜单,下拉菜单中有⼀组与⽂件相关的操作命令。
Windows7有些程序将菜单栏改成了选项卡标签,虽然也可称作菜单,但选中后并不出现下拉菜单⽽是进⾏功能区的切换。
功能区分类集中存放了程序⽤到的⼤部分⼯具。
这种功能区实际是将菜单命令⽤图形来表⽰了。
下图就展⽰了画图程序的两种功能区。
展⽰了画图程序在选取不同“标签”时窗⼝功能区的变化。
左图是选中“主页”标签后的功能区,右图是选中“查看”标签后显⽰的功能区。
5)窗⼝⼯作区窗⼝的主要区域称作窗⼝⼯作区,不同的程序窗⼝⼯作区显⽰的内容不同,记事本程序窗⼝⼯作区⽤于输⼊⽂字,画图程序则⽤来绘制图形。
窗口之间的主从关系与Z-Order围(Scope)讨论Windows操作系统中窗口之间的关系(relationship between windows),除特别指明的部分之外,适用于各版本桌面平台和Windows Mobile平台。
概述(Summary)窗口(Window)是Windows操作系统中用来显示信息和接受用户输入的基本单元(Block)。
负责管理窗口相关功能的操作系统部件被称为窗口管理器(Window Manager)。
Windows操作系统初始化时会生成一个窗口,叫做桌面窗口(Desktop Window),调用GetDesktopWindow函数可获得它的句柄。
桌面窗口会覆盖整个屏幕,所有其它窗口都在其之上显示。
窗口类型(Window Type)Windows中有3种类型的窗口:层叠窗口(Overlapped Window)、弹出窗口(Popup Window)、子窗口(Child Window),在生成窗口(调用CreateWindowEx)时分别以WS_OVERLAPPED、WS_POPUP或WS_CHILD窗口风格(Style)来表示。
层叠窗口是窗口的缺省类型,如果不指定任何窗口类型则生成的是层叠窗口。
弹出窗口通常用于对话框。
它隐含带有WS_CLIPSIBLINGS窗口风格(后面会详细描述)。
层叠窗口通常被用作应用程序的主窗口,也隐含带有WS_CLIPSIBLINGS窗口风格。
在桌面平台上,层叠窗口还隐含带有WS_CAPTION窗口风格。
带有标题栏的窗口都隐含带有边框(Border),至于原因嘛,想像一下“光秃秃的标题栏”+“没有边框的窗口”会是个什么样子。
在Mobile平台上,层叠窗口与弹出窗口的界限已经很模糊了。
层叠窗口和弹出窗口统称为顶层窗口(top-level windows)。
剩下的一类是子窗口,例如常见的Button,Edit Box,List Box等窗口控件。
电脑窗口有哪几部分组成的电脑窗口有哪几部分组成的1. 窗口的组成基本上我们所有的操作都离不了窗口,我们可以在窗口中存放、移动文件;在窗口中打开、执行应用程序。
双击“我的电脑”,打开“我的电脑”窗口,基本组成如下图所示。
1 标题栏标题栏位于窗口的顶部,显示窗口名称及图标,通过最右侧的三个按钮可以进行最小化、最大化、关闭窗口操作。
在标题栏空白处双击鼠标左键会自动切换窗口大小。
2 菜单栏菜单栏位于标题栏下方,其中存放了当前窗口中的许多操作选项。
一般菜单栏里包含了多个菜单项,分别点击其菜单项也可弹出下拉菜单,从中选择操作命令。
3 工具栏工具栏位于菜单栏的下方,其中列出了一些当前窗口的常用操作按钮。
4 地址栏地址栏位于工具栏的下方,其中显示了当前窗口所处的目录位置,即我们常说的'“文件路径”。
点击右侧的倒三角按钮,可以在其打开的下拉列表中选择我们所要访问的窗口。
5 任务栏任务栏位于窗口的左侧,其中提供了丰富的信息及命令,通常分为“系统任务”、“其它位置”、“详细信息”三类。
6 工作区工作区是窗口最主要也是最大的区域,用于显示对象和操作结果。
扩展资料:窗口的状态:当用户双击图标 A 而打开相应的窗口 A 时,该窗口便处于激活状态。
此时用户可以看见窗口A 中的所有元素,且窗口的标题条呈高亮度蓝色。
被激活窗口的应用程序在前台运行,它能接收用户键入的信息。
如果用户再双击图标 B 而打开窗口 B 时,窗口 B 又处于激活状态。
此时窗口 A 则转为非激活状态,且窗口 A 被窗口 B 所覆盖。
我们把窗口虽然已被打开,但却是处于非激活状态的称为打开状态。
在Windows 的桌面上,允许同时有多个处于打开状态的窗口,但其中只能有一个窗口处于激活状态,亦即,仅有一个应用程序在前台运行,其余的程序都在后台运行。
窗口的改变:用户可用鼠标来改变窗口的大小及其在桌面上的位置。
因此,既可用鼠标来拖拽窗口边框或窗口角,以改变窗口的大小,又可利用最大化和最小化按钮或控制菜单,来将窗口最大化或最小化。
windows窗⼝分析,⽗窗⼝,⼦窗⼝,所有者窗⼝(本⽂尝试通过⼀些简单的实验,来分析Windows的窗⼝机制,并对微软的设计理由进⾏⼀定的猜测,需要读者具备C++、Windows编程及MFC经验,还得有⼀定动⼿能⼒。
⽂中可能出现⼀些术语不统⼀的现象,⽐如“⼦窗⼝”,有时候我写作“child window”,有时候写作“child”,我想应该不会有太⼤影响,⽂章太长,不⼀⼀更正了)问题开始于我的最近的⼀次开发经历,我打算把程序的⼀部分界⾯放在DLL中,⽽这部分界⾯⼜需要使⽤到Tooltip,但DLL中的虚函数PreTranslateMessage⽆法被调⽤到,原因⼤家可以在⽹上搜索⼀下,这并不是我这篇⽂章要讲的。
PreTranslateMessage不能被调,那Tooltip也就不能起作⽤,因为Tooltip需要在PreTranslateMessage中加⼊tooltip.RelayEvent(&msg)来触发事件,⽅可正常显⽰。
解决⽅法有好⼏个,我⽤的是⽐较⿇烦的⼀个——完全⾃⼰⼿动编写Tooltip,然后⽤WM_MOUSEMOVE等事件来触发Tooltip显⽰,写好之后发现些⼩问题,那就是调试运⾏时候IDE给了个warning,说我在析构函数中调⽤了DestroyWindow,这样会导致窗⼝OnDestry和OnNcDestroy不被正常调⽤,这个问题我以前遇到过,当然解决⽅法也是显⽽易见的,只需要在窗⼝对象(C++概念,⾮Windows内核对象,下⽂同)销毁前,调⽤DestroyWindow即可。
对于要销毁的这个窗⼝的⼦窗⼝,是不需要显式调⽤DestroyWindow的,因为⽗窗⼝在销毁的时候也会销毁掉它们,OK,我把这个过程⽤个⽰意图说明⼀下:图1上图表⽰了App Window及其⼦窗⼝的关系,现在假设我们要销毁Parent Window 1(对应的对象指针是m_pWndParent1),我们可以m_pWndParent1->DestroyWindow(),这样Child Window 1,Parent Window 2,Child Window 2都被销毁了,销毁的时候这些窗⼝的OnDestry和OnNcDestroy都被调⽤了,最后delete m_pWndParent1,此时m_pWndParent1->m_hWnd已经是NULL,不会再去调⽤Destroy,在析构的时候也就不会出现Warning。
Windows 窗口层次关系相信在Windows 下面编程的很多兄弟们都不是很清楚Windows 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。
下面就说说Windows 中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。
在Windows 的图形界面下,最基本显示信息的元素就是窗口,每一个Windows 窗口都管理着自己与其他窗口之间的关系和自身的一些信息,如:是否可见,窗口的所有者,窗口的父/子关系等等信息,当窗口创建、销毁、显示的时候,就会用到这些信息。
在每一个窗口实例中,有四个元素被窗口管理器用来建立窗口管理链表。
∙Child :指向窗口子窗口的句柄∙Parent:指向窗口父窗口的句柄∙Owner:指向窗口所有者的句柄∙Next:指向下一个同属窗口的句柄众所周知当Windows 初始化的时候,它创建桌面这个窗口,桌面覆盖着整个窗口,窗口管理器用这个窗口作为窗口链表中第一个元素。
因此桌面在窗口的层次关系中在最上层。
在窗口层次关系中,桌面窗口下一层窗口叫做顶层窗口,顶层窗口就是那些不是子窗口的窗口,顶层窗口不能够有WS_CHILD 属性。
窗口管理器是如何把桌面窗口和顶层窗口联系起来的呢?窗口管理器把顶层窗口都组织到一个链表中,而这个链表的头存储的就是桌面窗口的子窗口句柄,每一个子窗口通过Next 就可以找到链表中下一个窗口了。
这个链表被称为子窗口链表,在同一个子窗口链表中的窗口是互为同属窗口,所有顶层窗口都是同属窗口。
窗口在子窗口链表中的次序,也表明了窗口距离距离桌面窗口的距离。
顶层窗口所形成的子窗口链表构成了一个Z 轴,窗口管理器就是根据Z 序列来觉得窗口的哪一部分是显示的,哪一部分是被遮盖的。
所有顶层窗口的父窗口都是指向桌面窗口的,这样一来顶层窗口就好像是桌面窗口的子窗口,所有顶层窗口构成的链表是桌面窗口的子窗口链表。
简述windows窗口组成部分及功能一、引言Windows操作系统是当前最为流行的操作系统之一,其窗口化的界面给用户带来了极大的便利。
本文将详细介绍Windows窗口组成部分及其功能。
二、窗口概述1. 窗口定义窗口是指计算机屏幕上显示的一个矩形区域,用于显示应用程序运行时的界面和信息。
2. 窗口分类Windows中的窗口主要分为应用程序窗口和系统窗口两种类型。
应用程序窗口是由用户启动的程序所创建,而系统窗口则是由操作系统或其他系统服务所创建。
三、窗口组成部分1. 标题栏标题栏位于每个窗口的顶端,包含了该窗口的标题以及最小化、最大化和关闭按钮等控制按钮。
用户可以通过点击这些按钮来控制该窗口的状态。
2. 菜单栏菜单栏位于标题栏下方,包含了该应用程序提供的各种功能菜单。
用户可以通过点击菜单项来执行相应功能。
3. 工具栏工具栏通常位于菜单栏下方或左侧,包含了一些常用工具按钮,如剪切、复制和粘贴等。
用户可以通过点击这些按钮来执行相应功能。
4. 状态栏状态栏位于窗口底部,用于显示一些状态信息,如当前页码、字数统计等。
5. 窗口内容区域窗口内容区域是指窗口中用于显示具体内容的部分,通常采用文本框、表格、图表等控件来展示信息。
四、窗口功能1. 最小化最小化是指将当前窗口缩小到任务栏上的一个图标,用户可以通过点击任务栏图标来恢复该窗口的显示。
2. 最大化最大化是指将当前窗口放大至整个屏幕大小,以便用户更好地查看和操作内容。
用户可以通过点击标题栏上的最大化按钮来实现。
3. 移动和调整大小用户可以通过拖动标题栏或边框来移动和调整窗口大小。
这样可以更好地适应不同屏幕分辨率和工作环境。
4. 多任务处理Windows系统支持多任务处理,即在同一时间内可以打开多个应用程序并同时运行它们。
用户可以通过在任务栏上切换不同的应用程序来实现多任务处理。
5. 窗口管理Windows系统提供了丰富的窗口管理功能,如层叠、平铺和级联等。
这些功能可以帮助用户更好地组织和管理窗口。
Windows 窗口层次关系相信在Windows 下面编程的很多兄弟们都不是很清楚Windows 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。
下面就说说Windows 中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。
在Windows 的图形界面下,最基本显示信息的元素就是窗口,每一个Windows 窗口都管理着自己与其他窗口之间的关系和自身的一些信息,如:是否可见,窗口的所有者,窗口的父/子关系等等信息,当窗口创建、销毁、显示的时候,就会用到这些信息。
在每一个窗口实例中,有四个元素被窗口管理器用来建立窗口管理链表。
∙Child :指向窗口子窗口的句柄∙Parent:指向窗口父窗口的句柄∙Owner:指向窗口所有者的句柄∙Next:指向下一个同属窗口的句柄众所周知当Windows 初始化的时候,它创建桌面这个窗口,桌面覆盖着整个窗口,窗口管理器用这个窗口作为窗口链表中第一个元素。
因此桌面在窗口的层次关系中在最上层。
在窗口层次关系中,桌面窗口下一层窗口叫做顶层窗口,顶层窗口就是那些不是子窗口的窗口,顶层窗口不能够有WS_CHILD 属性。
窗口管理器是如何把桌面窗口和顶层窗口联系起来的呢?窗口管理器把顶层窗口都组织到一个链表中,而这个链表的头存储的就是桌面窗口的子窗口句柄,每一个子窗口通过Next 就可以找到链表中下一个窗口了。
这个链表被称为子窗口链表,在同一个子窗口链表中的窗口是互为同属窗口,所有顶层窗口都是同属窗口。
窗口在子窗口链表中的次序,也表明了窗口距离距离桌面窗口的距离。
顶层窗口所形成的子窗口链表构成了一个Z 轴,窗口管理器就是根据Z 序列来觉得窗口的哪一部分是显示的,哪一部分是被遮盖的。
所有顶层窗口的父窗口都是指向桌面窗口的,这样一来顶层窗口就好像是桌面窗口的子窗口,所有顶层窗口构成的链表是桌面窗口的子窗口链表。
当顶层窗口创建的时候,窗口管理器把顶层窗口放在Z 轴的顶上,这样使得整个窗口可见,窗口管理器把窗口插入到桌面窗口子窗口链表的前面。
WS_EX_TOPMOST 这个属性控制着窗口管理器创建顶层窗口,窗口管理器把没有WS_EX_TOPMOST 属性的窗口放在具有WS_EX_TOPMOST 属性的窗口的后面,这样就使得具有WS_EX_TOPMOST 属性的窗口一直显示在前面。
在顶层窗口之间还有另外一直关系,拥有或者属于其他的顶层窗口,属于其他窗口的窗口叫做归属窗口,拥有其他窗口叫做宿主窗口,在Z 轴中,归属窗口一定在他的宿主窗口的前面,如果一个宿主窗口最小化,那么归属他的窗口会隐藏掉,如果宿主窗口隐藏起来,归属他的窗口不会被隐藏掉。
如果有三个窗口A、B、C ,A 拥有B,B 拥有 C ,如果A 最小化,那么B 会隐藏,但是C 还是可见的。
怎么才能够在窗口之间建立所有关系呢?方法是在调用CreateWindow或者CreateWindowEx 创建窗口的时候,指定hwndParent参数。
桌面窗口是在窗口层次中的第一层,顶层窗口在窗口层次中的第二层,子窗口也就是那些创建的时候指定了WS_CHILD 属性的窗口占据了窗口层次的其他层。
窗口和子窗口之间的联系,就像桌面窗口和顶层窗口之间的关系一样。
子窗口显示在其父窗口的客户区域,所有同一个窗口的子窗口同样建立一个Z 轴,这个和顶层窗口是类似的,顶层窗口也是显示在其父窗口――桌面窗口的客户区域。
16 位和32 位窗口系统的区别窗口之间的父子关系、归属所有关系、以及根据Z 轴来显示的这些规则在16 位和32 位窗口系统中都是相同的。
这样可以是在两种窗口系统中高度的兼容。
两种窗口系统的区别在于安全和多线程。
Windows NT 在原有的窗口层次关系中多增加了一层,每一个运行着Windows NT 的系统中都有一个Windows 工作站对象,这个对象是安全对象的第一层,是所有用户安全对象的继承之源,每一个Windows 工作站对象可以拥有一些桌面对象,每一个桌面都拥有上面描述的那样的窗口关系。
Windows Nt 用了两个桌面窗口对象,一个是用来处理登陆界面、屏蔽、锁住工作站等,一个是我们登陆之后进来操作的窗口了。
通常用户是不能够创建和删除桌面的,不过那是通常,实际上在Windows 下面也可以实现类似Linux 中的多个桌面的效果,每一个桌面都是一个独立的世界。
两种窗口系统还有两位一个区别,在16 位窗口系统中不支持多线程,所以应用程序开发者在创建窗口的时候不必考虑线程的问题了。
而在32 位窗口系统中由于又支持了窗口的父子关系,归属与拥有关系,同一个窗口下面的所有线程都拥有相同的一个输入队列,应用程序开发者应该明白输入队列是共享的,在同一个时刻只能有一个线程处理消息,其他的线程都在等待输入队列一直到GetMessage 或者PeekMessage 返回,而且必须注意的是父窗口和子窗口或者是归属与拥有窗口共用同一个线程。
在32 窗口系统中定义两种新的窗口类型,前台窗口和背景窗口,这两种窗口没有列到窗口的层次关系中,前台窗口就是用户当前操作的窗口,其他的所有窗口都是背景窗口。
32 位窗口系统中支持两个函数来处理前台窗口SetForegroundWindow和GetForegroundWindow。
操作窗口列表下面是窗口列表操作的一些函数:EnumChildWindows使用这个函数得到一个窗口的所有子窗口,包括子窗口的子窗口。
不过在列举的过程中这个函数不能够列出正在创建的或者销毁的窗口。
EnumThreadWindows使用这个函数可以列出所有属于这个线程的窗口。
在这个函数调用之后创建的窗口是不能够被列举出来的。
EnumWindows使用这个函数列举出所有顶层窗口,不能够列举出子窗口,要列出所有的顶层窗口,使用这个函数比GetWindow安全。
使用GetWindow 来列出所有的窗口,可能会导致程序无限循环,因为在调用GetWindow 的过程中,可能一些窗口已经销毁了。
EnumWindows 不能够列举出调用这个函数之后创建的顶层窗口。
FindWindow可以使用这个函数通过类名或者使用窗口的标题来找到顶层窗口,这个函数不能够用来找子窗口,这个函数不区分参数的大小写。
这个函数在Z轴中寻找窗口,找到了之后,就会返回。
GetDesktopWindow得到桌面窗口句柄GetNextWindow使用这个函数得到这个窗口的同属窗口,在16 位窗口系统中GetNextWindow 和GetWindow 是两个不同的函数,在32 位系统中这个函数是通过GetWindow 来实现的。
GetParent如果一个窗口存在父窗口,那么可以通过这个函数得到窗口的父窗口,如果窗口是顶层窗口,则返回其所有者窗口句柄。
GetThreadDesktop这个函数用来得到指定线程的所属的桌面窗口句柄,在win95 和win98下面由于不支持多桌面,每次调用该函数都返回同一个值。
GetTopWindow可以用这个函数来得到给定窗口的第一个子窗口的句柄,如果传递给函数的参数是NULL 的话,那么这个函数将会返回最上面的顶层窗口。
GetWindow应用程序可以调用这个函数来在窗口列表中导航,这个函数有两个参数,一个是窗口的句柄,另外是要得到的窗口句柄和这个窗口之间的关系。
∙GW_HWNDNEXT:这个函数返回给定窗口的下一个同属窗口∙GW_HWNDFIRST:返回给定窗口的前一个同属窗口∙GW_HWNDLAST:返回给定窗口的最后一个同属窗口∙GW_HWNDPREV:返回给定窗口的第一个同属窗口∙GW_OWNER:返回给定窗口的所有者窗口句柄GW_CHILD:返回给定窗口的第一个子窗口句柄IsChild这个函数有两个参数,两个窗口句柄,判断两个窗口是否存在父子关系窗口的属性当应用程序调用CreateWindow 创建窗口的时候,我们必须为窗口指定属性,下面简要的介绍一下窗口的属性。
WS_OVERLAPPED交迭属性是顶层窗口的一种属性,使用这种属性创建的窗口,会被链接到桌面窗口的子窗口链表中,应用程序通常使用这种属性的窗口作为应用程序的主窗口,具有交迭属性的窗口通常具有有标题栏,即使是WS_CAPTION 这个属性没有指定。
具有交迭属性的窗口通常都是有边框的,具有交迭属性的窗口可以拥有自己的顶层窗口,也可以所属其他的顶层窗口,所有的这类窗口都具有WS_CLIPSIBLINGS 属性,即使是没有给窗口指定这个属性。
WS_POPUP弹出属性也是应用到顶层窗口的一种属性,使用这种属性创建的窗口会被链接到桌面窗口的子窗口链表中,应用程序通常为对话框窗口设置这个属性,弹出属性和交迭属性的主要区别在于具有弹出属性的窗口不是一定要有标题栏的,而具有交迭属性的窗口则是一定要具有标题栏,具有弹出属性的窗口可以没有边框。
和具有交迭属性的窗口一样,具有弹出属性的窗口可以有自己的顶层所属窗口,也可以所属其他的顶层窗口。
所有具有弹出属性的窗口必须具有WS_CLIPSIBINGS 属性,即使是用户没有指定这个属性。
具有弹出属性的窗口在创建的时候,它的大小和位置不能够使用CW_USEDEFAULT 值。
WS_CHILD子窗口必须具有这个属性,子窗口只能够出现在父窗口的客户区域,这是子窗口和具有交迭属性的窗口以及弹出属性的窗口的主要区别,创建子窗口的时候,位置和大小不能够使用CW_USEDEFAULT 这个值,否则是不能够创建窗口的。
WS_CAPTION当窗口被设置这个属性的时候,窗口的最上头会有标题栏,应用程序可以通过SetWindowText 这个函数来改变标题栏的标题,通常具有标题栏的窗口还具有最大、最小、关闭按钮,和系统菜单。
如果一个窗口没有标题栏,那么Windows 是不会创建这些东西的,即使是用户指定了这些属性,系统菜单是依赖标题栏窗口的存在而存在的,如果没有标题栏那么是一定不会有系统菜单的存在的。
具有标题栏的窗口通常具有单线的边界具有可以改变窗口大小的属性,通常具有标题栏的窗口是不能具有对话框的边界属性的,除非为窗口设置WS_EX_DLGMODALFRAME 属性。
WS_MINIMIZEBOX当为窗口设置这个属性的时候,窗口的标题栏上会有一个最小化的按钮,其实对于Windows 来实现这个属性的时候,只是在标题栏上面放置了一个最小化的位图,当用户点击这个最小化位图的时候,窗口最小化,如果最大化位图最在,那么最小化位图被放置在最大化位图的左边。
没有这个属性的窗口是不能够最小化的。
WS_MAXIMIZEBOX当为窗口设置这个属性的时候,窗口的标题栏的右上会被放置一个最大化的位图,如果窗口设置了这个属性,用户可以点击最大化的位图或者是通过系统菜单来实现窗口的最大化,没有这个属性的窗口是不能够被最大化的。