CDC::SelectClipRgn
指定された領域をデバイス コンテキストの現在のクリップ領域として選択します。
int SelectClipRgn(
CRgn* pRgn
);
int SelectClipRgn(
CRgn* pRgn,
int nMode
);
パラメーター
pRgn
選択される領域を識別します。この関数の最初の形式では、この値が NULL のときは、クライアント領域全体が選択され、出力がウィンドウにクリップされます。
この関数の 2 番目の形式では、RGN_COPY モードが指定されたときだけ、このハンドルに NULL を指定できます。
nMode
実行する操作を指定します。 次の値のいずれかになります。RGN_AND 新しいクリップ領域は、現在のクリップ領域と pRgn で識別される領域の重なり合った領域を結合します。
RGN_COPY 新しいクリップ領域は、pRgn で識別される領域のコピーです。 機能的には、SelectClipRgn の最初の形式と同じです。 pRgn で識別される領域が NULL のときは、新しいクリップ領域は既定のクリップ領域 (NULL 領域) になります。
RGN_DIFF 新しいクリップ領域は、pRgn で識別される領域から現在のクリップ領域を除外した領域を結合します。
RGN_OR 新しいクリップ領域は、現在のクリップ領域と pRgn で識別される領域を結合します。
RGN_XOR 新しいクリップ領域は、現在のクリップ領域と pRgn で識別される領域を結合し、重なり合った領域を除外します。
戻り値
領域の型を返します。 次のいずれかの値になります。
COMPLEXREGION 新しいクリップ領域には、重なり合った境界線があります。
ERROR デバイス コンテキストまたは領域が無効です。
NULLREGION 新しいクリップ領域は空です。
SIMPLEREGION 新しいクリップ領域には重なり合う境界線がありません。
解説
選択された領域のコピーだけが使われます。 このため、領域自身はほかのデバイス コンテキストに対しても何回でも選択でき、削除もできます。
この関数では、指定領域の座標がデバイス単位で指定されているものと仮定します。 プリンター デバイスには、テキスト メトリックを表現するときの正確さを保持するために、グラフィック出力よりも高解像度のテキスト出力をサポートするものもあります。 つまり、これらのデバイスは高解像度のテキスト単位でデバイス単位を表します。 これらのデバイスでは、いくつかのデバイス単位を 1 つのグラフィック単位だけに割り当ててグラフィックスの座標を計測します。 ユーザーは、常にテキスト単位を使って SelectClipRgn 関数を呼び出す必要があります。
GDI でグラフィックス オブジェクトのスケーリングを行うアプリケーションは、スケール ファクターを決めるために GETSCALINGFACTOR プリンター エスケープを使うことができます。 このスケール ファクターは、クリッピングに影響します。 領域がグラフィックスをクリップするために使われるときときは、GDI は座標をスケール ファクターで除算します。 領域がテキストをクリップするために使われるときは、GDI はスケーリングによる補正を行いません。 スケール ファクターが 1 のときは座標を 2 で割り、スケール ファクターが 2 のときは 4 で割り、以下同様になっています。
必要条件
**ヘッダー:**afxwin.h