GraphicsPathIterator::Enumerate method (gdipluspath.h)
Metode GraphicsPathIterator::Enumerate menyalin titik data jalur ke array PointF dan menyalin jenis titik jalur ke array BYTE .
Sintaks
INT Enumerate(
[out] PointF *points,
[out] BYTE *types,
[in] INT count
);
Parameter
[out] points
Jenis: PointF*
Penunjuk ke array yang menerima titik data jalur.
[out] types
Jenis: BYTE*
Penunjuk ke array yang menerima jenis titik jalur.
[in] count
Jenis: INT
Bilangan bulat yang menentukan jumlah elemen dalam array titik . Ini sama dengan jumlah elemen dalam array jenis .
Nilai kembali
Jenis: INT
Metode ini mengembalikan jumlah titik yang diambil.
Keterangan
Objek GraphicsPathIterator ini dikaitkan dengan objek GraphicsPath . Objek GraphicsPath tersebut memiliki array titik dan array jenis. Setiap elemen dalam array jenis adalah byte yang menentukan jenis titik dan sekumpulan bendera untuk elemen yang sesuai dalam array titik. Kemungkinan jenis titik dan bendera tercantum dalam enumerasi PathPointType .
Anda dapat memanggil metode GraphicsPathIterator::GetCount untuk menentukan jumlah titik data di jalur. Parameter titik menunjuk ke buffer yang menerima titik data, dan parameter jenis menunjuk ke buffer yang menerima jenis. Sebelum Anda memanggil metode GraphicsPathIterator::Enumerate , Anda harus mengalokasikan memori untuk buffer tersebut. Ukuran buffer titik harus menjadi nilai pengembalian GraphicsPathIterator::GetCount dikalikan dengan sizeof(PointF). Ukuran buffer jenis harus menjadi nilai pengembalian GraphicsPathIterator::GetCount.
Contoh
Contoh berikut membuat objek GraphicsPath dan menambahkan tiga baris ke jalur. Kode ini membuat objek GraphicsPathIterator dan memanggil metode GraphicsPathIterator::Enumerate untuk mengambil titik data jalur dan jenis titik. Kemudian kode menampilkan hitungan yang dikembalikan oleh metode 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;
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdipluspath.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
GraphicsPathIterator::CopyData