WS_CLIPCHILDREN与WS_CLIPSIBLINGS 收藏

本文详细解析了Windows样式WS_CLIPCHILDREN与WS_CLIPSIBLINGS的功能与区别,WS_CLIPCHILDREN确保父窗口绘制时避开子窗口区域,而WS_CLIPSIBLINGS则确保子窗口间不会相互覆盖绘制。
英文单词解释
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。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 【运算单元构造实验报告】运算单元是计算机硬件系统中的关键构成部分,主要承担执行算术运算和逻辑运算的任务。在本次实验中,我们着重探讨了带有累加器的运算单元的设计,涵盖了溢出识别、有符号数值无符号数值运算的差异性,以及采用补码方式进行的加法减法运算的实现机制。 一、实验目标 1. 掌握运算单元的基本构造,理解带有累加器的运算单元的具体实现途径。 2. 学习并领会溢出检测的机制,能够设计并构建溢出检测电路,用以判定运算结果是否超出了数据类型的表示范畴。 3. 明辨有符号数值和无符号数值运算的不同特性,把握它们在运算过程中各自的处理方法。 4. 熟练掌握基于补码方式的加法减法运算的执行,理解补码形式下的溢出判定准则。 5. 熟悉运算单元内部的数据传输路线,明晰数据在运算过程中的流转路径。 6. 设计一个能够支持有符号数值无符号数值运算、补码加法/减法运算以及有符号数值溢出检测的运算单元电路。 二、实验仪器 采用JZYL—Ⅱ型计算机组成原理实验装置,配备2片74181运算单元芯片作为算术逻辑单元(ALU),2片74LS373用作八位D型锁存器,并辅以一些基础门电路和多路选择器来完成电路设计。 三、实验内容 1. 运用片74181构建一个8位运算单元,负责处理数据的高4位低4位。 2. 设计并实现溢出检测电路,确保在有符号数值无符号数值的加法运算中均能准确识别溢出状况。 3. 通过74LS373增加累加器功能,使运算结果得以保存。 4. 将所有设计整合,利用多路选择器来支持有符号数值无符号数值的加法/减法运算。 四、实验电路 1. 8位运算单元由2片74181构成,通过控制...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值