LinearGradientBrush::Metode GetInterpolationColorCount (gdiplusbrush.h)
Metode LinearGradientBrush::GetInterpolationColorCount mendapatkan jumlah warna yang saat ini diatur untuk diinterpolasi untuk sikat gradien linier ini.
Sintaks
INT GetInterpolationColorCount();
Mengembalikan nilai
Jenis: INT
Metode ini mengembalikan jumlah warna yang akan diinterpolasi untuk sikat gradien linier ini. Jika tidak ada warna yang diatur dengan menggunakan LinearGradientBrush::SetInterpolationColors, atau jika posisi yang tidak valid diteruskan ke LinearGradientBrush::SetInterpolationColors, maka LinearGradientBrush::GetInterpolationColorCount mengembalikan 0.
Keterangan
Sikat gradien linier sederhana memiliki dua warna: warna pada batas awal dan warna di batas akhir. Ketika Anda melukis dengan kuas seperti itu, warna berubah secara bertahap dari warna awal ke warna akhir saat Anda berpindah dari batas awal ke batas akhir. Anda dapat membuat gradien yang lebih kompleks dengan menggunakan metode LinearGradientBrush::SetInterpolationColors untuk menentukan array warna dan posisi campuran yang sesuai untuk diinterpolasi untuk sikat gradien linier ini.
Anda dapat memperoleh warna dan posisi campuran yang saat ini diatur untuk sikat gradien linier dengan memanggil metode LinearGradientBrush::GetInterpolationColors . Sebelum Anda memanggil metode LinearGradientBrush::GetInterpolationColors , Anda harus mengalokasikan dua buffer: satu untuk menahan array warna dan satu untuk menahan array posisi campuran. Anda dapat memanggil metode LinearGradientBrush::GetInterpolationColorCount untuk menentukan ukuran buffer yang diperlukan. Ukuran buffer warna adalah nilai yang dikembalikan dari LinearGradientBrush::GetInterpolationColorCount dikalikan dengan sizeof(Color). Ukuran buffer posisi campuran adalah nilai LinearGradientBrush::GetInterpolationColorCount dikalikan dengan sizeof( REAL).
Contoh
Contoh berikut mengatur warna yang akan diinterpolasi untuk sikat gradien linier ini menjadi merah, biru, dan hijau dan mengatur posisi perpaduan ke 0, 0,3, dan 1. Kode ini memanggil metode LinearGradientBrush::GetInterpolationColorCount dari objek LinearGradientBrush untuk mendapatkan jumlah warna yang saat ini diatur untuk diinterpolasi untuk kuas. Selanjutnya, kode mendapatkan warna dan posisinya. Kemudian, kode mengisi persegi kecil dengan setiap warna.
VOID Example_GetInterpColors(HDC hdc)
{
Graphics myGraphics(hdc);
// Create a linear gradient brush, and set the colors to be interpolated.
Color col[] = {
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
Color(255, 0, 255, 0)}; // green
REAL pos[] = {
0.0f, // red at the left edge
0.3f, // blue at 30 percent of the distance from
// left edge to right edge
1.0f}; // green at the right edge
LinearGradientBrush linGrBrush(
Point(0, 0),
Point(100, 0),
Color(255, 0, 0, 0), // black
Color(255, 255, 255, 255)); // white
linGrBrush.SetInterpolationColors(col, pos, 3);
// Obtain information about the linear gradient brush.
INT colorCount = 0;
Color* colors = NULL;
REAL* positions = NULL;
// How many colors have been specified to be interpolated
// for this brush?
colorCount = linGrBrush.GetInterpolationColorCount();
// Allocate a buffer large enough to hold the set of colors.
colors = new Color[colorCount];
// Allocate a buffer to hold the relative positions of the colors.
positions = REAL[colorCount];
// Get the colors and their relative positions.
linGrBrush.GetInterpolationColors(colors, positions, colorCount);
// Fill a small rectangle with each of the colors.
SolidBrush* pSolidBrush;
for(INT j = 0; j < colorCount; j++)
{
pSolidBrush = new SolidBrush(colors[j]);
myGraphics.FillRectangle(pSolidBrush, 15*j, 0, 10, 10);
delete(pSolidBrush);
}
}
Persyaratan
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 | gdiplusbrush.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Mengisi Bentuk dengan Gradien Warna
LinearGradientBrush::GetInterpolationColors