• [转]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

  • 相关阅读:
    如何使不同时区的时间与京8区一致?(JS实现)
    再论递归
    如何实现keep-alive
    [小tips]使用vscode,根据vue模板文件生成代码
    gulp-load-task 解决 gulpfile.js 过大的问题
    《Vue 编程房内考》
    前端开发笔试题汇总
    HTTP状态码及其含义 503 500 401 200 301 302
    IE, FF, Safari前端开发常用调试工具
    DOCTYPE与浏览器模式详解(标准模式&混杂模式)
  • 原文地址:https://www.cnblogs.com/hehexiaoxia/p/3981087.html
Copyright © 2020-2023  润新知