CRgn::CreatePolyPolygonRgn

创建包含一系列的闭合多边形的区域。

BOOL CreatePolyPolygonRgn(
   LPPOINT lpPoints,
   LPINT lpPolyCounts,
   int nCount,
   int nPolyFillMode 
);

参数

  • lpPoints
    指向数组 POINT 结构或定义多边形的顶点的数组 CPoint 对象。 每个多边形,因为系统不会自动关闭,它们必须显式关闭。 多边形顺序指定。 POINT 结构具有以下形式:

    typedef struct tagPOINT {

    int x;

    int y;

    } POINT;

  • lpPolyCounts
    指向整数。 第一个整数在 lpPoints 数组的第一个多边形在第二个多边形指定顶点的数量,第二个整数指定顶点的数量,依此类推。

  • nCount
    在 lpPolyCounts 数组指定整数的总数。

  • nPolyFillMode
    指定多边形加载模式。 此值可能为 ALTERNATEWINDING

返回值

非零,如果操作成功;否则为0。

备注

得到的边界。CRgn 对象存储。

多边形可能是相交,也能重叠。

区域的大小限制为内存32,767 x 32,767个逻辑单元或64K,后者较小。

当多边形加载模式是 ALTERNATE时,系统会加载在奇数和偶数多边形端之间区域中每扫描行。 即该系统加载在第一个和第二个边之间的区域,在第三个和第四个边之间,依此类推。

当多边形加载模式是 WINDING时,系统会使用来绘制确定是否加载区域的方向。 在多边形的每一行段都沿顺时针方向旋转或左转绘制。 每当从一个用绘制区域的一虚构的行到正在的外部通过一如果线段,计数递增。 当行通过一逆时针的行段时,计数递减。 区加载,如果计数不为零,当行到达该运行时的外部。

当应用程序完成使用 CreatePolyPolygonRgn 功能时创建的区域,则应选择该区域在设备上下文之外和使用 CGDIObject::DeleteObject 成员函数中移除。

要求

Header: afxwin.h

请参见

参考

CRgn 类

层次结构图

CRgn::CreatePolygonRgn

CDC::SetPolyFillMode

CreatePolyPolygonRgn