塗りつぶし領域
アプリケーションは、 FillRgn 関数を呼び出し、特定のブラシを識別するハンドルを指定することで、領域の内部を塗りつぶします。 アプリケーションが FillRgn を呼び出すと、システムは、指定されたデバイス コンテキストの現在の塗りつぶしモードを使用して、ブラシで領域を塗りつぶします。 フィル モードには、代替モードと巻き取りモードの 2 つがあります。 アプリケーションは、 SetPolyFillMode 関数を呼び出すことによって、デバイス コンテキストの塗りつぶしモードを設定できます。 アプリケーションは、 GetPolyFillMode 関数を呼び出すことによって、デバイス コンテキストの現在の塗りつぶしモードを取得できます。
次の図は、2 つの同じ領域を示しています。1 つは代替モードを使用して塗りつぶされ、もう 1 つは巻き取りモードを使用して塗りつぶされています。
代替モード
代替モードが指定されたときにシステムが強調表示するピクセルを確認するには、次のテストを実行します。
- 領域内のピクセルを選択します。
- そのピクセルから無限大に向かって、正の x 方向に虚数線を描画します。
- レイが境界線と交差するたびに、カウント値をインクリメントします。
カウント値が奇数の場合、ピクセルが強調表示されます。
巻き取りモード
巻き取りモードを指定したときにシステムが強調表示するピクセルを確認するには、次のテストを実行します。
- 各境界線を描画する方向を決定します。
- 領域内のピクセルを選択します。
- ピクセルから無限大に向かって、正の x 方向に虚数線を描画します。
- 光線が正の y 成分を持つ境界線と交差するたびに、カウント値をインクリメントします。 レイが負の y 成分を持つ境界線と交差するたびに、カウント値をデクリメントします。
カウント値が 0 以外の場合、ピクセルが強調表示されます。