一个应用程序通过调用FillRgn函数来填充一个区域的内部,并提供一个标识一个特定画笔的句柄。当应用程序调用{??989796011}时,Windows将使用指定设备上下文的当前填充模式填充刷新区域。有两种填充模式:交替和绕组。应用程序可以通过调用SetPolyFillMode功能为设备上下文设置填充模式。应用程序可以通过调用GetPolyFillMode功能来检索设备上下文的当前填充模式。
下图显示了两个相同的区域:一个使用交替模式填充,另一个填充使用绕组模式。
替代模式
要确定在指定备用模式时Windows将突出显示哪些像素,请执行以下测试:
1.选择区域内部的像素。
从正像素向正方向绘制一个虚拟的光线,从该像素向无限远。
每次射线与边界线相交时,增加计数值。
如果计数值是奇数,Windows会突出显示像素。
绕线方式
要确定在指定绕组模式时Windows突出显示哪些像素,请执行以下测试:
1.确定绘制每条边界线的方向。
2.选择区域内部的像素。
3.在正x方向上绘制一个从像素到无穷远的假想光线。
4.每次射线与具有正y分量的边界线相交时,增加计数值。每次射线与具有负y分量的边界线相交时,会减少计数值。
如果计数值不为零,Windows将突出显示像素。