次の方法で共有


領域のクリッピング

クリッピング領域は、アプリケーションがデバイス コンテキスト (DC) に選択できるグラフィック オブジェクトの 1 つです。 通常は四角形です。 一部のデバイス コンテキストでは定義済みまたは既定のクリッピング領域が提供されますが、それ以外の場合は提供されません。 たとえば、 BeginPaint 関数からデバイス コンテキスト ハンドルを取得した場合、DC には、再描画を必要とする無効な四角形に対応する定義済みの四角形クリッピング領域が含まれます。 ただし、NULLhWnd パラメーターを使用して GetDC 関数を呼び出すか、CreateDC 関数を呼び出してデバイス コンテキスト ハンドルを取得する場合、DC には既定のクリッピング領域は含まれません。 BeginPaint 関数によって返されるデバイス コンテキストの詳細については、「描画と描画」を参照してください。 CreateDC 関数と GetDC 関数によって返されるデバイス コンテキストの詳細については、「デバイス コンテキスト」を参照してください。

アプリケーションでは、クリッピング領域に対してさまざまな操作を実行できます。 これらの操作の中には、リージョンを識別するハンドルが必要な操作もあれば、そうでない操作もあります。 たとえば、アプリケーションは、デバイス コンテキストのクリッピング領域に対して次の操作を直接実行できます。

  • 対応する線、円弧、ビットマップ、テキスト、または塗りつぶされた図形の座標を PtVisible 関数に渡して、領域の境界線内にグラフィックス出力を表示するかどうかを決定します。
  • RectVisible 関数を呼び出して、クライアント領域の一部がリージョンと交差するかどうかを判断します。
  • OffsetClipRgn 関数を呼び出して、指定したオフセットだけ既存の領域を移動します。
  • ExcludeClipRect 関数を呼び出して、クライアント領域の四角形の部分を現在のクリッピング領域から除外します。
  • IntersectClipRect 関数を呼び出して、クライアント領域の四角形の部分を現在のクリッピング領域と結合します。

クリッピング領域を識別するハンドルを取得した後、アプリケーションはリージョンに共通する次のような任意の操作を実行できます。

  • CombineRgn 関数を呼び出して、現在のクリッピング領域のコピーと 2 番目のリージョンを組み合わせます。
  • EqualRgn 関数を呼び出して、現在のクリッピング領域のコピーを 2 番目のリージョンと比較します。
  • PtInRegion 関数を呼び出して、ポイントが現在のクリッピング領域のコピーの内部にあるかどうかを判断します。