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 |