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
指定多边形加载模式。 此值可能为 ALTERNATE 或 WINDING。
返回值
非零,如果操作成功;否则为0。
备注
得到的边界。CRgn 对象存储。
多边形可能是相交,也能重叠。
区域的大小限制为内存32,767 x 32,767个逻辑单元或64K,后者较小。
当多边形加载模式是 ALTERNATE时,系统会加载在奇数和偶数多边形端之间区域中每扫描行。 即该系统加载在第一个和第二个边之间的区域,在第三个和第四个边之间,依此类推。
当多边形加载模式是 WINDING时,系统会使用来绘制确定是否加载区域的方向。 在多边形的每一行段都沿顺时针方向旋转或左转绘制。 每当从一个用绘制区域的一虚构的行到正在的外部通过一如果线段,计数递增。 当行通过一逆时针的行段时,计数递减。 区加载,如果计数不为零,当行到达该运行时的外部。
当应用程序完成使用 CreatePolyPolygonRgn 功能时创建的区域,则应选择该区域在设备上下文之外和使用 CGDIObject::DeleteObject 成员函数中移除。
要求
Header: afxwin.h