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 群組的幾何物件。 這個陣列中的元素數目會以 geometriesCount 參數表示。

geometriesCount

類型: UINT

幾何中的項目數目。

[out] geometryGroup

類型: ID2D1GeometryGroup**

當這個方法傳回時,會包含這個方法所建立之 geometry 群組的指標位址。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

幾何群組是同時分組數個幾何的便利方式,因此數個不同幾何的所有圖形都會串連成一個。 若要建立 ID2D1GeometryGroup 物件,請在 ID2D1Factory 物件上呼叫 CreateGeometryGroup 方法,並傳入 fillMode,其中可能值為 D2D1_FILL_MODE_ALTERNATE (替代) 和D2D1_FILL_MODE_WINDING、要新增至幾何群組的 geometry 物件陣列,以及此陣列中的元素數目。

範例

下列程式代碼範例會先宣告 geometry 對象的數位列。 這些物件是具有下列弧度的四個同心圓:25、50、75 和 100。 然後在ID2D1Factory物件上呼叫 CreateGeometryGroup、傳入D2D1_FILL_MODE_ALTERNATE、要新增至幾何群組的 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 Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d2d1.h
程式庫 D2d1.lib
Dll D2d1.dll

另請參閱

幾何概觀

ID2D1Factory