Bagikan melalui


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

Kuas dan Bentuk Terisi

Warna

Membuat Gradien Linear

Mengisi Bentuk dengan Gradien Warna

LinearGradientBrush

LinearGradientBrush::GetInterpolationColors

LinearGradientBrush::SetInterpolationColors

PathGradientBrush

Rect

SolidBrush