ID2D1Factory::CreateGeometryGroup 方法 (d2d1.h)

创建 ID2D1GeometryGroup,它是保存其他几何图形的对象。

语法

HRESULT CreateGeometryGroup(
        D2D1_FILL_MODE     fillMode,
  [in]  ID2D1Geometry      **geometries,
        UINT32             geometriesCount,
  [out] ID2D1GeometryGroup **geometryGroup
);

参数

fillMode

类型: D2D1_FILL_MODE

一个 值,该值指定复合形状用于确定给定点是否为几何图形的一部分的规则。

[in] geometries

类型: ID2D1Geometry**

包含要添加到 geometry 组的 geometry 对象的数组。 此数组中的元素数由 geometriesCount 参数指示。

geometriesCount

类型: UINT

几何图形中的元素数。

[out] geometryGroup

类型: ID2D1GeometryGroup**

此方法返回时,包含指向此方法创建的几何组的指针的地址。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

注解

几何组是同时组合多个几何图形的便捷方法,因此多个不同几何图形的所有图形都连接成一个。 若要创建 ID2D1GeometryGroup 对象,请对 ID2D1Factory 对象调用 CreateGeometryGroup 方法,传入 fillMode,其中包含D2D1_FILL_MODE_ALTERNATE (备用) 和D2D1_FILL_MODE_WINDING、要添加到 geometry 组的 geometry 对象的数组以及此数组中的元素数。

示例

下面的代码示例首先声明 geometry 对象的数组。 这些对象是四个同心圆,其半径如下:25、50、75 和 100。 然后,对 ID2D1Factory 对象调用 CreateGeometryGroup,传入D2D1_FILL_MODE_ALTERNATE、要添加到 geometry 组的 geometry 对象数组以及此数组中的元素数。

ID2D1Geometry *ppGeometries[] =
{
    m_pEllipseGeometry1,
    m_pEllipseGeometry2,
    m_pEllipseGeometry3,
    m_pEllipseGeometry4
};

hr = m_pD2DFactory->CreateGeometryGroup(
    D2D1_FILL_MODE_ALTERNATE,
    ppGeometries,
    ARRAYSIZE(ppGeometries),
    &m_pGeoGroup_AlternateFill
    );

if (SUCCEEDED(hr))
{
    hr = m_pD2DFactory->CreateGeometryGroup(
        D2D1_FILL_MODE_WINDING,
        ppGeometries,
        ARRAYSIZE(ppGeometries),
        &m_pGeoGroup_WindingFill
        );
}

下图显示了呈现示例中的两个组几何图形的结果。

两组四个同心圆的插图,一组填充了第二个和第四个圆环,另一个圆圈填充了所有圆圈

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1.h
Library D2d1.lib
DLL D2d1.dll

另请参阅

几何概述

ID2D1Factory