英文单词解释
clip:夹子、子弹夹、回形针;夹住,修剪
sibling:同胞兄弟或姐妹
overlapped:重叠

这两个Window Stype的特性与异同素来不太清楚,今日作一笔记:
MSDN的解释为:

  • WS_CLIPCHILDREN   Excludes the area occupied by child windows when you draw within the parent window. Used when you create the parent window.
  • WS_CLIPSIBLINGS   Clips child windows relative to each other; that is, when a particular child window receives a paint message, the WS_CLIPSIBLINGS style clips all other overlapped child windows out of the region of the child window to be updated. (If WS_CLIPSIBLINGS is not given and child windows overlap, when you draw within the client area of a child window, it is possible to draw within the client area of a neighboring child window.) For use with the WS_CHILD style only. 

    此处另有一文的解释为:

  • JohnCz
    06-27-2006, 09:40 PM

    It is not a property per se.
    WS_xxx are Window styles. Both clip of area of other window when window overlaps another window.
    Clip sibling for example will cause MDI child window to paint itself over another child window (sibling) when overlapped. The same will happen

    WS_CLIPCHILDREN will do exactly the same when parent overlaps child window.

    综上所述
    WS_CLIPCHILDREN,使得父窗体在绘制时留出其上的子窗体的位置不去画它,而那片区域留着子窗体去画。
    WS_CLIPSIBLING,必须用于子窗体,使得该子窗体在收到WM_PAINT时同时令其共父的诸多子窗体(MSDN讲必须不在该区域,即不与之重叠)也会被PAINT。

    //下面也是对WS_CLIPSIBLINGS的理解
    所有的overlapped窗口和popup窗口,都有WS_CLIPSIBLINGS 属性,
    这些窗口不能在它的sibling窗口上绘图

    对于child窗口,如果没有这个属性,它能在它的sibling窗口上绘图

    +-----------+
                      |A             |
                      |   +--------+-------
                      |   |            |     B |
                      |   |  C        |        |
                     +---+-------+       |
                          |                    |
                          +---------------+
    如果A, B都是child窗口,
    如果A具有WS_CLIPSIBLINGS属性,
    那么A重绘时不会重绘C部分

    clip是裁减,去除的意思 相当与英文的Exclude

    个人理解:WS_CLIPCHILDREN和WS_CLIPSIBLING都是为了减少重画,减少闪动,保证窗口的重叠部分只有一个窗口来实现PAINT。

    WS_CLIPCHILDREN与WS_CLIPSIBLINGS 收藏的更多相关文章

    1. WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解(转载)

      1.1 WS_CLIPCHILDREN WS_CLIPCHILDREN样式从字面上可以理解成ClipChildren,裁减子窗口. MSDN里的E文解释:Excludes the area occup ...

    2. 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

      如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...

    3. 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

      WS_CLIPCHILDREN,使得父窗体在绘制时留出其上的子窗体的位置不去画它,而那片区域留着子窗体去画.WS_CLIPSIBLINGS,必须用于子窗体,使得该子窗体在收到WM_PAINT时同时令其 ...

    4. 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题

      原文:解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI.不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现 ...

    5. 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点

      原文:使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 制作传统 Win32 程序以及 Windows Forms 程序的时候,一个用户看起来独立的窗口本就 ...

    6. TAQSkinScrollBar 类美化滚动条再讨论

      再说:TAQSkinScrollBar 类美化滚动条,http://www.138soft.com/?p=156  里面有人提到不可以滚动 滚动的改善方法: unit AQSkinScrollBar; ...

    7. 【转】窗口之间的主从关系与Z-Order

      原文链接:http://www.cnblogs.com/dhatbj/p/3288152.html 说明:这是本人2008年写的一篇旧文,从未公开发表过.其中除了一小段描述Window Mobile平 ...

    8. MFC下OpenGL入门(可以用)

      MFC下OpenGL入门 源文件 1, 建一工程文件,我这里命名为first,现在first工程里面我们没有添加任何东西,所有的东西都是MFC自动帮我们创建的. 2, 添加链接库.这一步很关键.打开菜 ...

    9. 1、基于MFC的OpenGL程序

      首先,使用的库是GLUT以及GLAUX,先下载两者,添加查找路径以及链接   一.单文本文件   工程openGLMFC 1.创建单文本文件   2.添加路径.链接 方法如之前篇章所示, 链接库为op ...

    随机推荐

    1. Labview常用快捷键

      对象调整和移动快捷键 Shift-click                          选择多个对象,在现有选择的基础上添加对象 方向键                            ...

    2. javaEE简答题整理

      1. 什么是JavaEE?其编程思想是什么? JavaEE是一个标准的中间件体系结构,是企业分布式应用开发标准.JavaEE的编程思想是组件—容器. 2. 为什么提出JavaEE体系结构? (1)为满 ...

    3. android一分钟学会可视化操作数据库(无需ROOT)

      我刚开始弄android数据库的时候,想查询一些数据,以验证程序逻辑,发现很多方案都需要ROOT. 即便有不需要ROOT的方案,命令行交互也比较麻烦. 今天跟大家分享一下这个点点鼠标就能实现的功能. ...

    4. UTF-8、UTF-16、UTF-32编码的相互转换

      最近在考虑写一个可以跨平台的通用字符串类,首先需要搞定的就是编码转换问题. vs默认保存代码文件,使用的是本地code(中文即GBK,日文即Shift-JIS),也可以使用带BOM的UTF-8.gcc ...

    5. openstack 升级设计要求的指导原则

      不知道其他软件有没有类似的指导原则. Theory of Upgrade Grenade works under the following theory of upgrade. New code s ...

    6. javascript第二课javascript规范

      1.javascript严格区分大小写 2.声明变量一律使用var 推断类型 3.每条语句后面加分号 4.字符串使用单引号 5.html代码使用双引号,js用单引号

    7. 仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)

      Github:https://github.com/chariothy/laravel4-sae (已更新至v1.1.0) laravel4-sae (v. 1.0.0) 仅仅需手动添加一行代码就可以 ...

    8. Tomcat从零开始(十一)WebappLoader概述

      好的,我们先看看这个WebappLoader到底在开始的时候做了什么,先看看他的start()方法. public void start() throws LifecycleException { / ...

    9. 一步一步挖出Compute

      前几天在做结账的时候,对数据表DataGridView控件的单列求和纠结了一番.        如今差点儿养成了习惯,对于一些东西疏于開始的思考,不会先想到百度,这里我是先想到了第一版的机房收费那块的 ...

    10. 不要再坑人啦!NSOperation才是苹果推荐使用的多线程技术!

      首先声明一下.小汤我在实际开发中呢,实际上也是喜欢用GCD多一点,由于用起来感觉更方便. 可是,事实是什么呢? 苹果推荐使用的实际上是NSOperation.所以希望对此没有研究的各位不要再在博客中误 ...