Share via


領域 (GDI+)

領域は、表示サーフェスの一部です。 領域は、単純 (1 つの四角形) にすることも、複雑 (多角形と閉じた曲線の組み合わせ) にすることもできます。 次の図は、2 つの領域を示しています。1 つは四角形から作成され、もう 1 つはパスから作成されています。

不透明な曲線形状を重ね合わせた透明な四角形領域を示す図

領域は、多くの場合、クリッピングとヒット テストに使用されます。 クリッピングでは、描画を画面の特定の領域 (通常は画面の更新が必要な部分) に制限します。 ヒット テストでは、マウス ボタンが押されたときにカーソルが画面の特定の領域にあるかどうかを確認する必要があります。

領域は、四角形またはパスから作成できます。 また、既存の領域を組み合わせて、複雑な領域を作成することもできます。 Region クラスには、リージョンを結合するための次のメソッドが用意されています。 IntersectUnionXorExcludeRegion::Complement

2 つの領域の積集合は、両方の領域に属するすべてのポイントのセットです。 和集合は、いずれかの領域すなわち両方の領域に属するすべてのポイントのセットです。 領域の補集合は、領域に属さないすべてのポイントのセットです。 次の図は、前の図の 2 つの領域の積集合と和集合を示しています。

前の図の領域の交差部分とその交差部分を示す図

2 つのリージョンに適用される Xor メソッドは、1 つのリージョンまたは他方のリージョンに属するすべてのポイントを含むリージョンを生成しますが、両方は含まれません。 リージョンのペアに適用される Exclude メソッドは、2 番目のリージョンにない最初のリージョンのすべてのポイントを含むリージョンを生成します。 次の図は、このトピックの冒頭に示す 2 つの領域に Xor メソッドと Exclude メソッドを適用した結果の領域を示しています。

どちらの領域の部分も両方ではなく、曲線領域と重ならない四角形の部分を示す図

領域を塗りつぶすには、 Graphics オブジェクト、 Brush オブジェクト、 Region オブジェクトが 必要です。 Graphics オブジェクトは Graphics::FillRegion メソッドを提供し、Brush オブジェクトには塗りつぶしの属性 (色やパターンなど) が格納されます。 次の例では、領域が純色で塗りつぶされます。

myGraphics.FillRegion(&mySolidBrush, &myRegion);