区域(GDI+)
区域是显示图面的一部分。 区域可以是简单(单个矩形)或复杂(多边形和封闭曲线的组合)。 下图显示了两个区域:一个是从矩形构造的,另一个是从路径构造的。
显示与不透明曲线形状重叠的透明矩形区域的
区域通常用于剪辑和命中测试。 剪辑涉及将绘图限制为屏幕的特定区域,通常是需要更新的屏幕部分。 命中测试涉及检查光标是否位于屏幕的特定区域,当按下鼠标按钮时。
可以从矩形或路径构造区域。 还可以通过组合现有区域来创建复杂区域。 Region 类提供了以下组合区域的方法:相交、联合、Xor、Exclude和 Region::Complement。
两个区域的交集是属于这两个区域的所有点集。 联合是属于一个或另一个或两个区域的所有点集。 区域补充是该区域中所有点的集合。 下图显示了上图中两个区域的交集和联合。
应用于一对区域的 Xor 方法 生成一个区域,其中包含属于一个区域或另一个区域的所有点,但不包含这两个点。 应用于一对区域的 Exclude 方法生成一个区域,该区域包含第一个区域中不在第二个区域中的所有点。 下图显示了将 Xor 和 Exclude 方法应用到本主题开头所示的两个区域的结果区域。
若要填充区域,需要 图形 对象、Brush 对象和 Region 对象。 Graphics 对象提供 Graphics::FillRegion 方法,Brush 对象存储填充的属性,如颜色或图案。 以下示例使用纯色填充区域。
myGraphics.FillRegion(&mySolidBrush, &myRegion);