[转]z-order引出的问题

在窗口与窗口之间毫无重叠的情况下,根本不需要关心z-order。然而,当窗口之间出现重叠时,系统就需要通过一个标准来确定窗口的显示顺序。这个标准就是z-order。存在多个因素影响一个窗口的z-order:

1、窗口类型是否为TOPMOST;

2、窗口间的父子关

系;

3、窗口间的owner关系;

4、是否为active状态。

z-order的确定过程如下:

1、所有topmost窗口的zorder都比非topmost窗口高;

2、一个top-level窗口的zorder比它的owner的zorder高;

3、子窗口的zorder与父窗口的zorder一样高。

什么是top-level窗口?

不拥有WS_CHILD(WS_CHILDWINDOW)风格的窗口即top-level窗口。

什么是owner关系?

创建窗口时,如果没有指定WS_CHILD或者同时指定了WS_CHILD和WS_POPUP,那么创建出来的窗口和hParent之间就是一种owner关系。hParent是新窗口的owner。值得注意的是,owner关系一旦确立就无法更改。

什么是父子关系?

创建窗口时指定WS_CHILD风格或者通过SetParent建立。

父子关系与owner关系能否并存?

可以!有两种方法:在创建窗口时同时指定WS_CHILD和WS_POPUP;创建时不指定WS_CHILD,创建后通过ModifyStyle增加WS_CHILD风格,调用SetParent建立父子关系。当两个窗口间同时存在这两种关系时,owner关系被忽略。利用这个特点可以实现将一个子窗口全屏的效果。

父子关系带来的责任与义务

子窗口只能在父窗口的client区域显示、父窗口先于子窗口被创建、子窗口先于父窗口销毁、父窗口最小化或隐藏时子窗口不可见。

owner关系带来的责任与义务

owner销毁前,owned窗口会被销毁;owner窗口最小化时,owned窗口不可见。PS:owner窗口隐藏时,owned窗口依然可见。

原文地址:http://blog.csdn.net/lyclowlevel/article/details/7294980

时间: 2024-11-03 11:28:12

[转]z-order引出的问题的相关文章

Z Order of Controls in Delphi FireMonkey(Tom Yu的博客)

Get and set the Z Order of controls at runtime in Delphi FireMonkey. This is a follow on to my earlier post where I provided a VCL solution.Now Ive created a free FireMonkey unit that has the same get and set routines as the VCL solution.  The full s

Z Order(Copy From WIN32.HLP)

The Z order of a window indicates the window's position in a stack of overlapping windows. This window stack is oriented along an imaginary axis, the z-axis, extending outward from the screen. The window at the top of the Z order overlaps all other w

QTP学习笔记1

QTP中获取当前路径 实属转帖,方便以后查找~ QTP9.2版本,以下内容适合QTP和vbs. 路径一:QTP的测试当前路径 environment("TestDir") 使用environment("TestDir")能获取当前测试的绝对路径,不包括最后的"\" 方法: Path = environment("TestDir") 路径二:QTP安装目录下bin目录的路径 WshShell.CurrentDirectory (

CCNode Class-----Cocos2D-Swift v3.3

CCNode Class Reference Inherits from CCResponder : NSObject Conforms to CCSchedulerTarget Declared in CCNode.h Overview CCNode is the base class for all objects displayed by Cocos2D. CCNode handles transformations, can have a content size and provide

ROS学习之ROS单位

基本单位: 长度 米 质量 千克 时间 秒 电流 安培 导出单位 角度  弧度 频率  赫兹 力  牛顿 功率 瓦特 电压 伏特 温度 摄氏度 磁感应强度 特斯拉 坐标系约定 In relation to a body the standard is: x forward y left z up For short-range Cartesian representations of geographic locations, use the ENU convention: X east Y n

Android的所有权限说明

Android权限分的很细,但命名比较人性化,Android permission比SymbianCapabilities有了不少改进,下面就来看看权限许可都有哪些定义吧,发现还是比较繁多的,如果发现你的程序某个地方调试错误很可能是Androidpermission的访问控制在作怪,这也是为了安全防止手机成为病毒的场所.Android开发网获取到的消息来看不用购买高昂的数字签名证书,权限许可权由用户决定而不是手机制造商和平台提供商,这一点不得不说明为Android开发人员着想,下面的信息都是需要

android动画xml

[TOC] Tween Animation通用属性及功能 通用属性 功能 Duration[long] 属性为动画的持续时间,以毫秒为单位 fillAfter[boolean] 是指动画结束时画面停留在此动画的第一帧 fillbefore[boolean] 是指动画结束是画面停留在此动画的最后一帧 上面两个属性解释 是因为有动画链的原因,假定你有一个移动的动画紧跟一个淡出的动画,如果你不把移动的动画的setFillAfter置为true,那么移动动画结束后,View会回到原来的位置淡出,如果se

Android 动画系列

Android种最常用的动画: ~1~Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变) Tweene Animations 主要类: Animation   动画 AlphaAnimation 渐变透明度 RotateAnimation 画面旋转 ScaleAnimation 渐变尺寸缩放 TranslateAnimation 位置移动 AnimationSet  动画集 以自定义View为例,该View很简单,画面上只有一个图片. 现在我们要对整个V

Cocos2d之Node类详解之节点树(二)

一.声明 本文属于笔者原创,允许读者转载和分享,只要注明文章来源即可. 笔者使用cocos2d框架的cocos2d-x-3.3rc0版本的源代码做分析.这篇文章承接上篇<Cocos2d之Node类详解之节点树(一)>. 二.简介 节点 一个Node对象. 节点树 上篇文章介绍到,Node类有一个成员变量 Vector<Node*> _children,这是一个保存所有子节点的数组,因为Node类采用遍历树的方式获取子节点进行渲染,所以我管这两个东西的结合叫节点树. 三.源码详解 &

unity3d插件Daikon Forge GUI 中文教程-2-基础控件Label的使用

(游戏蛮牛首发)大家好我是孙广东.官网提供了专业的视频教程http://www.daikonforge.com/dfgui/tutorials/,不过是在youtube上,要观看是需要翻墙的. 不过教程还是文本更好一些,便于观看查找. 我们先来设置 UI Root 中的如下:屏幕大小为1024*768 2.1  新建一个Label 控件 先来看看Control Properties (基本上是所有控件都共用的)的以后不再介绍,参数: 其中要设置好Layout 和 Anchor 我们就要完全的理解