リージョン (GDI+)
領域は、表示面の一部です。 領域は、単純 (単一の四角形) または複合 (多角形と閉じた曲線の組み合わせ) にすることができます。 次の図は、2 つの領域を示しています。1 つは四角形から構築され、もう 1 つはパスから構築されています。
領域は、クリッピングとヒット テストによく使用されます。 クリッピングでは、描画を画面の特定の領域 (通常は更新する必要がある画面の部分) に制限します。 ヒット テストでは、マウス ボタンが押されたときにカーソルが画面の特定の領域にあるかどうかを確認する必要があります。
領域は、四角形またはパスから作成できます。 既存のリージョンを組み合わせて複雑なリージョンを作成することもできます。 Region クラスには、リージョンを結合するためのメソッドが用意されています。Intersect、Union、Xor、Exclude、および Region::Complement。
2 つのリージョンの交差部分は、両方のリージョンに属するすべてのポイントのセットです。 共用体は、一方または他方または両方のリージョンに属するすべてのポイントのセットです。 リージョンの補数は、そのリージョンに含まれていないすべてのポイントのセットです。 次の図は、前の図の 2 つの領域の交差部分と和集合を示しています。
前
Xor メソッドは、リージョンのペアに適用され、一方または他方の領域に属するすべてのポイントを含む領域を生成しますが、両方は含まれません。 Exclude メソッドは、リージョンのペアに適用され、2 番目の領域にない最初の領域のすべてのポイントを含む領域を生成します。 次の図は、このトピックの最初に示した 2 つの領域に Xor メソッドと Exclude メソッドを適用した結果の領域を示しています。
領域を塗りつぶすには、Graphics オブジェクト、Brush オブジェクト、および Region オブジェクトが必要です。 Graphics オブジェクトは Graphics::FillRegion メソッドを提供し、Brush オブジェクトには塗りつぶしの属性 (色やパターンなど) が格納されます。 次の使用例は、領域を単色で塗りつぶします。
myGraphics.FillRegion(&mySolidBrush, &myRegion);