极语言官方网站

剪裁区域

应用程序通过多种方式使用剪裁。Word和电子表格剪裁键盘输入,使其不显示在页面或电子表格的边距中。

计算机辅助设计(CAD)和绘图程序剪裁图形输出,使其不覆盖绘图或图片的边缘。

剪裁公为剪裁区域和剪裁路径,剪裁区域是一个边缘为直线或曲线的区域。

剪裁路径是具有直线、贝塞尔曲线或两者组合的边缘的区域。

剪裁区域是应用程序可以选择到设备上下文中的图形对象之一, (DC) 。

它通常是矩形的。 某些设备上下文提供预定义的或默认的剪辑区域,而另一些则不提供。

应用程序可以对剪裁区域执行各种操作。 其中一些操作需要标识区域的句柄,而有些则不需要。

例如,应用程序可以直接对设备上下文的剪辑区域执行以下操作。

通过将相应线条、弧线、位图、文本或填充形状的坐标传递给 点在剪裁 函数,确定图形输出是否显示在区域的边框内。

通过调用 矩形在剪 函数确定工作区的一部分是否与区域相交。

通过调用 剪裁偏移 函数按指定偏移量移动现有区域。

通过调用 剪裁新区 函数,从当前剪辑区域中排除工作区的矩形部分。

通过调用 交叉剪裁 函数,将工作区的矩形部分与当前剪辑区域合并。

获取标识剪辑区域的句柄后,应用程序可以执行区域通用的任何操作,例如:

通过调用 合并区域 函数将当前剪辑区域的副本与第二个区域组合在一起。

通过调用 对比区域 函数将当前剪辑区域的副本与第二个区域进行比较。

通过调用 点在区内 函数,确定某个点是否位于当前剪辑区域副本的内部。

应用程序通过调用与特定形状关联的函数来创建区域。

下表显示了与每个标准形状关联的函数 。

形状函数
矩形区域创建矩形、新建矩形、设置区域
带圆角的矩形区域建圆矩形
椭圆区域创建椭圆、新建椭圆
多边形区域建多边区 、叠多边区

每个区域创建函数返回一个标识新区域的句柄。

应用程序可以通过调用 选择对象 函数将区域选择到设备上下文中。

将某个区域选入设备上下文后,应用程序可以对其执行各种操作。

应用程序可以组合区域、比较区域、填充区域、绘制区域、反转内部、在其周围绘制框架、

移动区域、检索其尺寸以及测试光标是否位于其边界内。

中文名称英文名称示例作用
剪裁函数
剪裁新区ExcludeClipRect剪裁新区(设备,左,上,右,下)创建一个新的剪切区域,该区域由一个现存的剪切区域减去一个特定的矩形区域而构成
剪裁组合ExtSelectClipRgn剪裁组合(设备,区域,模式)使用指定的模式将指定的区域与当前的剪切区域进行组合。
设备边界GetClipBox设备边界(设备,矩形)获取围绕设备当前可见区域绘制的最紧密的边界矩形的尺寸。
剪裁区域GetClipRgn剪裁区域(设备,区域)获取指定设备的当前应用程序定义的剪切区域的句柄。
设备元区GetMetaRgn设备元区(设备,元区域)获取指定设备的元区域
区域相交SetMetaRgn区域相交(设备)将指定设备的当前裁剪区域与当前元区域相交,剪切区域将重置为空区域。
剪裁复制GetRandomRgn剪裁复制(设备,区域,4)将指定设备系统剪辑区域(4)复制到特定区域
交叉剪裁IntersectClipRect交叉剪裁(设备,左,上,右,下)从当前剪切区域和指定矩形的交点创建一个新的剪切区域。
剪裁偏移OffsetClipRgn剪裁偏移(设备,X,Y)将设备的剪切区域移动指定的偏移量。
点在剪裁PtVisible在否=点在剪裁(设备,x,y)确定指定的点是否在设备的剪裁区域内。
矩形在剪RectVisible在否=矩形在剪(设备,矩形)确定指定的矩形是否在设备的剪裁区域内。
选择剪裁SelectClipPath选择剪裁(设备,模式)选择当前路径作为设备的剪切区域,组合模式:1交集,2联合,3异或,4合并,5复制
选区剪裁SelectClipRgn选区剪裁(设备,区域)选择一个区域作为指定设备的当前剪辑区域。
区域函数
合并区域CombineRgn合并区域(目标,源区1,源区2,模式)组合两个区域,并将结果存储在第三个区域。模式:1交集,2联合,3异或,4合并,5复制
创建椭圆CreateEllipticRgn区域=创建椭圆(左,上,右,下)创建一个椭圆形区域。
新建椭圆CreateEllipticRgnIndirect区域=新建椭圆(矩形类)创建一个椭圆形区域。
建多边区CreatePolygonRgn建多边区(点数组,点数量,填充)创建一个由一系列点围成的区域。最后点与第一点相连以封闭多边形。
叠多边区CreatePolyPolygonRgn叠多边区(点数组,点计数组,点计数,填充)创建一个由一系列多边形组成的区域。多边形可以重叠。模式:1填充每个扫描线,2非零绕组值填充
创建矩形CreateRectRgn区域=创建矩形(左,上,右,下)创建一个矩形区域。
新建矩形CreateRectRgnIndirect区域=新建矩形(矩形类)创建一个矩形区域。
建圆矩形CreateRoundRectRgn区域=建圆矩形(左,上,右,下,圆宽,圆高)创建一个带圆角的矩形区域。
对比区域EqualRgn对比区域(区域1,区域2)检查两个指定的区域,以确定它们的大小形状是否相同。
区域转换ExtCreateRegion区域转换(转换,长度,数据)根据指定的区域转换数据创建区域。如缩放,平移,旋转,剪切
填充区域FillRgn填充区域(设备,区域,笔刷)使用指定的画笔填充区域。
区域画框FrameRgn区域画框(设备,区域,画笔,笔宽,笔高)使用指定的画笔在指定区域周围绘制一个边框。
区域边界GetRgnBox区域边界(区域,矩形)获取指定区域的边界矩形。
区域数据GetRegionData区域数据(区域,大小,数据)将指定区域的数据填充指定的缓冲区。
填充模式GetPolyFillMode模式=填充模式(设备)获取指定设备的多边形填充模式。模式:1填充每个扫描线,2非零绕组值填充
模式填充SetPolyFillMode填充模式(设备,模式)设置指定设备的多边形填充模式。模式:1填充每个扫描线,2非零绕组值填充
反转区域InvertRgn反转区域(设备,区域)可以反转指定区域的颜色。
区域偏移OffsetRgn区域偏移(区域,X,Y)将区域移动指定的偏移量。
喷涂区域PaintRgn喷涂区域(设备,区域)使用当前选定的画笔在设备中绘制(涂漆)指定的区域。
点在区内PtInRegion在否=点在区内(区域,x,y)确定指定的点是否在指定区域内。
转换区域PathToRegion区域=转换区域(设备)从选择到指定设备的路径中创建一个区域。
矩形在区RectInRegion在否=矩形在区(区域,矩形)确定指定的矩形是否在指定区域边界内。
设置区域SetRectRgn设置区域(区域,左,上,右,下)将区域转换为具有指定坐标的矩形区域。

区域数据类
中文名字英文名称长度作用解释
区域数据类RGNDATA32+包含一个标头和一个构成区域的矩形数组。 矩形按从上到下、从左到右排序。 它们不重叠。
区域数据类——成员表
标头rdh区域头类RGNDATAHEADER 结构。
数据Buffer[1]文本指定包含构成区域的矩形结构的任意大小的缓冲区。

区域头类
中文名字英文名称长度作用解释
区域头类RGNDATAHEADER32   指定区域的类型(区域是矩形还是梯形)、组成区域的矩形数量、包含矩形结构的缓冲区的大小等。
区域头类——成员表
大小dwSize整数标头的大小(以字节为单位)。
分类iType整数区域的类型。此值必须是1。
块数nCount整数构成区域的矩形数。
长度nRgnSize整数接收构成区域的矩形结构所需的缓冲区的大小。如果大小未知,则此成员可以为零。
rcBound.Left整数区域(以逻辑单元为单位)的边框左边距。
rcBound.Top整数区域(以逻辑单元为单位)的边框上边距。
rcBound.Right整数区域(以逻辑单元为单位)的边框右边距。
rcBound.Bottom整数区域(以逻辑单元为单位)的边框左边距。