CDC::SetPolyFillMode 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置多边形的填充模式。多边形可以是由多个点组成的形状,例如矩形、三角形等。

这个方法的原型如下:
int SetPolyFillMode(
   int nPolyFillMode
);

参数说明:
  •  nPolyFillMode 是填充模式的标志,可以是以下两个值之一:

  - WINDING:指定“ winding”规则,即对于任意给定的点,通过多边形的射线从该点发出,与多边形相交的射线总数必须为奇数,以便点在多边形内部。
  - ALTERNATE:指定“ alternate”规则,即通过多边形的射线从该点发出,与多边形相交的射线总数必须为奇数或零,以便点在多边形内部。

这个方法返回之前的填充模式。

示例代码如下:
CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用
int nPreviousMode = dc.SetPolyFillMode(WINDING); // 设置为 winding 模式

// 在这里进行多边形的绘制,例如绘制一个矩形
CPoint points[4] = {CPoint(50, 50), CPoint(150, 50), CPoint(150, 150), CPoint(50, 150)};
dc.Polygon(points, 4);

// 恢复之前的填充模式
dc.SetPolyFillMode(nPreviousMode);

在这个示例中,首先使用 SetPolyFillMode 将填充模式设置为 WINDING,然后通过 Polygon 方法绘制一个矩形。最后,通过再次调用 SetPolyFillMode 恢复之前的填充模式。


转载请注明出处:http://www.pingtaimeng.com/article/detail/17206/MFC/CDC