<Return[E]><Top>

ExtSelectClipRgn

Declare Function Api_ExtSelectClipRgn& Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hDC&, ByVal hRgn&, ByVal fnMode&)

Declare Function ExtSelectClipRgn Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal fnMode As Long) As Long

指定されたモードを使って、指定されたリージョンと現在のクリッピングリージョンを組み合わせる。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。
hrgn
    選択対象のリージョンのハンドルを指定する。このパラメータに NULL を指定できるのは、RGN_COPY モードを選択した場合だけである。
fnMode
    実行するべき操作モードを指定する。次の値のいずれかを指定する。

    値                 

意味                                                                                                                               

    RGN_AND

 

現在のクリッピング領域と、hrgn パラメータで指定したリージョンの両方に含まれる領域(重なり合う領域)を、新しいクリッピング領域にする。

    RGN_COPY

 

hrgn パラメータで指定したリージョンのコピーを、新しいクリッピング領域にする。この動作は、 SelectClipRgn 関数と同じである。hrgn パラメータが NULL の場合、既定のクリッピングリージョン(すなわち NULL リージョン)が、新しいクリッピングリージョンになる。

    RGN_DIFF

 

 

現在のクリッピングリージョンから、hrgn パラメータで指定したリージョンを除いた領域を、新しいクリッピングリージョンにする。
RGN_OR 現在のクリッピングリージョンと、hrgn パラメータで指定したリージョンを組み合わせた領域を、新しいクリッピングリージョンにする。2 つのリージョンの一方または両方に含まれていた領域が、新しいクリッピングリージョンになる。

    RGN_OR

現在のクリッピングリージョンと、hrgn パラメータで指定したリージョンを組み合わせた領域を、新しいクリッピングリージョンにする。2 つのリージョンの一方または両方に含まれていた領域が、新しいクリッピングリージョンになる。

    RGN_XOR

現在のクリッピングリージョンと、hrgn パラメータで指定したリージョンを組み合わせた領域から、その 2 つが重なり合う部分を除いた領域が、新しいクリッピングリージョンになる。2 つのリージョンのどちらか一方だけに含まれていた領域が、新しいクリッピングリージョンになる。

 

戻り値
    関数が終了すると、新しいクリッピングリージョンの複雑度が返る。これは、次の値のいずれかになる。

    値                             

意味                                                                                                                                                    

    NULLREGION

クリッピングリージョンは空である。

    SIMPLEREGION

クリッピングリージョンは単一の長方形である。

    COMPLEXREGION

クリッピングリージョンは単一の長方形よりも複雑な形である。

    ERROR

エラーが発生した。

 

解説
    エラーが発生した場合は、指定したデバイスコンテキストのクリッピングリージョンは変化しない。
    この関数は、リージョンの座標がデバイス単位で指定されているものと仮定する。
    この関数が使うのは、hrgn パラメータで指定されたリージョンのコピーだけである。指定されたリージョンそのものは、この関数を呼び出した

    後も有効であるし、削除することもできる。