<Return[S]><Top>

SetPolyFillMode

Declare Function Api_SetPolyFillMode& Lib "gdi32" Alias "SetPolyFillMode" (ByVal hDC&, ByVal nPolyFillMode&)

Declare Function SetPolyFillMode Lib "gdi32" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As Long

多角形塗りつぶしモードを設定する。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。
iPolyFillMode
    新しい多角形塗りつぶしモードを指定する。次の値のどちらかを指定する。

    値                         

意味                                                                                                                                               

    ALTERNATE

 

交互モードを選択する。

(多角形の各走査行で、多角形の奇数番号の辺から偶数番号の辺までの間の領域を塗りつぶす。)

    WINDING

全域モードを選択する。(0 以外のワインディング値をもつすべての領域を塗りつぶす。)


戻り値
    以前の多角形塗りつぶしモードが返る。エラーが発生した場合、0 が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    通常、2 つのモードが異なるのは、複雑な重なり合った多角形を扱う場合だけである。

    たとえば、中央に五角形を持つ星型の図形の場合、ALTERNATE モードでは多角形内で互いに隣接しない領域(すなわち、星型の頂 

    点の部分)が塗りつぶされ、WINDING モードではすべての領域(すなわち、頂点の部分と五角形)が塗りつぶされる。
    塗りつぶしモードが ALTERNATE の場合、GDI は多角形の各走査行で多角形の奇数番号の辺から偶数番号の辺までの間の領域を塗

    りつぶす。つまり、GDI は、1 番目の辺と 2 番目の辺の間の領域、次に 3 番目の辺と 4 番目の辺の間の領域という方法で領域を塗りつ

    ぶす。
    多角形塗りつぶしモードが WINDING の場合、GDI はワインディング値が 0 ではないすべての領域を塗りつぶす。

    特定の点でのワインディング値は、多角形を描画するときに使われるペンが、その点の周囲を回る回数として定義される。

    多角形の各辺の方向が重要である。