[转]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
[转]z-order引出的问题的更多相关文章
- 自定义经纬度索引(非RTree、Morton Code[z order curve]、Geohash的方式)
自定义经纬度索引(非RTree.Morton Code[z order curve].Geohash的方式) Custom Indexing for Latitude-Longitude Data 网 ...
- Z Order of Controls in Delphi VCL
Get and set the Z Order of controls at runtime in Delphi VCL. If you are looking for a FireMonkey so ...
- 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 earli ...
- Z Order(Copy From WIN32.HLP)
The Z order of a window indicates the window's position in a stack of overlapping windows. This wind ...
- 【层次查询】Hierarchical Queries之亲兄弟间的排序(ORDER SIBLINGS BY)
http://blog.itpub.net/519536/viewspace-624176 有关层次查询之前的文章参考如下. [层次查询]Hierarchical Queries之"树的遍历 ...
- Order Siblings by 排序
在层次查询中,如果想让"亲兄弟"按规矩进行升序排序就需要使用ORDER SIBLINGS BY 这个特定的排序语句,若要降序输出可以在其后添加DESC关键字. 通过这个实验给大家展 ...
- Linux内核入门到放弃-内存管理-《深入Linux内核架构》笔记
概述 内存管理的实现涵盖了许多领域: 内存中的物理内存页管理 分配大块内存的伙伴系统 分配较小内存块的slab.slub和slob分配器 分配非连续内存块的vmalloc机制 进程的地址空间 在IA- ...
- android Animation介绍
Animation介绍: 在Android SDK介绍了2种Animation模式: 1. Tween Animation:间动画,通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即 ...
- windows消息机制详解(转载)
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的 ...
- C#调用Win32API
Win32API.cs using System;using System.Drawing;using System.Runtime.InteropServices;using Lordal.Wi ...
随机推荐
- JS 实现新浪微博, QQZone 等的分享
<script type="text/javascript">window.pageConfig = { compatible: true,searchType: 1 ...
- 个人作业Week 2 ----------代码的规范和代码复审
1.是否需要有代码规范 从个人理解的角度出发,我认为代码规范还可以细分为代码的风格还有代码的结构设计(就好比排版一类的) 以前在上C语言课程的时候就看到过,老师会在打“{”的时候进行一个换行,但是有些 ...
- [转载] MySQL高可用方案选型参考
原文: http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml?hmsr=toutiao.io&utm_medium=toutiao. ...
- Scala的Actor模式 & Akka框架
今天学Spark的时候,看到Scala的actor模式是一个加分点.所以搜了一下,看了.主要参考下面两篇文章,还没有实验,有些地方领会的不深刻: http://nxlhero.blog.51cto.c ...
- 5.6 a、b交换
答案:int max = ((a+b)+abs(a-b))/2;
- 删除github账号的方法
如果你不想使用自己的github账号了,github官网允许你删除账号,具体操作步骤为: 1.登录github网站,网站右上角的头像,在下拉菜单中选择"Settings"(设置): ...
- Hbase之获取数据
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache ...
- karma+angular
下面的介绍以karma能正常运行为前提,看karma系列文章:http://www.cnblogs.com/laixiangran/tag/Karma/ 目录结构 步骤 安装 npm install ...
- Spring AOP propagation七种属性值
<!-- 配置事务通知 --> <tx:advice id="advice" transaction-manager="transactionManag ...
- H5网页播放器播不了服务器上的mp4视频文件
打开IIS,在功能视图里找到MIME类型菜单,打开该菜单后鼠标右键添加.mp4扩展名的MIME类型video/mp4 其他视频文件播放不了估计也得在IIS里添加对应的MIME类型(从服务器下载文件时也 ...