GraphicsPathIterator::Enumerate 方法 (gdipluspath.h)
GraphicsPathIterator::Enumerate 方法會將路徑的數據點複製到 PointF 陣列,並將路徑的點類型複製到 BYTE 陣列。
語法
INT Enumerate(
[out] PointF *points,
[out] BYTE *types,
[in] INT count
);
參數
[out] points
類型: PointF*
接收路徑數據點之陣列的指標。
[out] types
類型: BYTE*
接收路徑點類型的陣列指標。
[in] count
類型: INT
整數,指定 點 陣列中的項目數目。 這與 型別 數位中的元素數目相同。
傳回值
類型: INT
這個方法會傳回所擷取的點數。
備註
這個 GraphicsPathIterator 物件與 GraphicsPath 對象相關聯。 該 GraphicsPath 物件具有點陣列和類型的數位。 型別數位中的每個元素都是位元組,指定點類型,以及點陣列中對應元素的一組旗標。 PathPointType 列舉中會列出可能的點類型和旗標。
您可以呼叫 GraphicsPathIterator::GetCount 方法來判斷路徑中的數據點數目。 points 參數會指向接收數據點的緩衝區,而型別參數會指向接收類型的緩衝區。 呼叫 GraphicsPathIterator::Enumerate 方法之前,您必須為這些緩衝區配置記憶體。 點緩衝區的大小應該是 GraphicsPathIterator::GetCount 的傳回值乘以 sizeof (PointF) 。 類型緩衝區的大小應該是 GraphicsPathIterator::GetCount 的傳回值。
範例
下列範例會建立 GraphicsPath 物件,並將三行新增至路徑。 程序代碼會建立 GraphicsPathIterator 物件,並呼叫其 GraphicsPathIterator::Enumerate 方法來擷取路徑的數據點和點類型。 然後,程式代碼會顯示 GraphicsPathIterator::Enumerate 方法所傳回的計數。
#define BUFFER_SIZE 30
TCHAR numPointsEnum[BUFFER_SIZE];
// Add some lines to a path.
Point pts[] = {Point(20, 20),
Point(100, 20),
Point(100, 50),
Point(20, 50)};
GraphicsPath path;
path.AddLines(pts, 4);
// Create a GraphicsPathIterator object, and associate it with the path.
GraphicsPathIterator pathIterator(&path);
// Create destination arrays, and copy the path data to them.
UINT c = pathIterator.GetCount();
PointF* pEnumPoints = new PointF[c];
BYTE* pTypes = new BYTE[c];
INT count = pathIterator.Enumerate(pEnumPoints, pTypes, c);
// Confirm that the points were enumerated.
StringCchPrintf(
numPointsEnum, BUFFER_SIZE, TEXT("%d points were enumerated."), count);
MessageBox(hWnd, numPointsEnum, TEXT("Enumerate"), NULL);
delete[] pEnumPoints;
delete[] pTypes;
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP、Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | gdipluspath.h (包含 Gdiplus.h) |
程式庫 | Gdiplus.lib |
Dll | Gdiplus.dll |
另請參閱
GraphicsPathIterator::CopyData