在MFC(Microsoft Foundation Classes)中,CRgn::CreatePolyPolygonRgn 是用于创建包含多个多边形的区域(Region)的方法。该方法的声明如下:
BOOL CreatePolyPolygonRgn(
   CONST POINT* lpPoints,
   CONST INT* lpPolyCounts,
   int nCount,
   int nPolyFillMode
);

这个方法允许您指定一个或多个多边形,通过传递一个指向 POINT 数组的指针 lpPoints,一个指向表示每个多边形点数的整数数组 lpPolyCounts,以及整数 nCount 表示多边形的数量。nPolyFillMode 参数指定了区域的填充模式,通常使用 WINDING 或 ALTERNATE。

使用示例:
CRgn myPolyPolygonRgn;

// 定义多边形的点数组
POINT points[] = {
    {10, 10},
    {50, 10},
    {30, 40},
    {70, 40},
    {50, 70},
    {90, 70}
};

// 定义每个多边形的点数
INT polyCounts[] = {3, 3};

// 创建包含两个三角形的区域
myPolyPolygonRgn.CreatePolyPolygonRgn(points, polyCounts, 2, WINDING);

在这个示例中,CreatePolyPolygonRgn 方法被用于创建一个包含两个三角形的区域对象 myPolyPolygonRgn。points 数组定义了所有多边形的点,而 polyCounts 数组指定了每个多边形的点数。这样,myPolyPolygonRgn 就代表了一个包含多个多边形的区域。


转载请注明出处:http://www.zyzy.cn/article/detail/22127/MFC/CRgn