1.two type of clipping
one for improve performance
two for effect
2.DC的中裁剪区域的分类
DC可以看成是被分配在矩形中的像素的集合,当DC没有任何限制时,DC中的任何一个像素都是可以被写的(所以DC中的任何区域都是可以绘制的)。当事实上DC内部维护着三种不同的区域,当DC被绘制时,DC会对其拥有的区域进行裁剪(clipping):
- 系统区域(system region)
系统区域又叫做可视区域,初始情况下系统区域包含整个DC, 通常有系统维护和管理这块区域,但是我们的Application也可以使用以下方法来操纵系统区域:
- the target window rectangle or region if it was modified by SetWindowRgn
- The window regions for child windows will be removed from the System Region if the WS_CLIPCHILDREN class style is set.
- the window regions for all of the windwos above the target window in the Z-Order will be removed as well.
- If BeginPaint was used to create the DC, then the update region for the window will be intersected with the remaining System Region.
与系统区域有关的函数GetRandomRgn, GetDCEx
2. 裁剪区域(clip region)
这个区域有Application完全控制,so we can do anything almost in this region. 初始情况下,当DC被创建时,DC默认的裁剪区域被设置为DC的整个表面(这和系统区域相同)。This region can be changed, manipulated and even cleared through the life of the DC by the application.
3. 元区(meta region)
这个区域和图元文件相关,可以认为是图元文件的二级裁剪区域(second clip region)