LinearGradientBrush::Metode GetBlend (gdiplusbrush.h)

Metode LinearGradientBrush::GetBlend mendapatkan faktor campuran dan posisi campuran yang sesuai dari objek LinearGradientBrush .

Sintaks

Status GetBlend(
  [out] REAL *blendFactors,
  [out] REAL *blendPositions,
  [in]  INT  count
);

Parameter

[out] blendFactors

Jenis: REAL*

Penunjuk ke array yang menerima faktor campuran. Setiap angka dalam array menunjukkan persentase warna akhir dan berada dalam rentang 0,0 hingga 1,0.

[out] blendPositions

Jenis: REAL*

Penunjuk ke array yang menerima posisi campuran. Setiap angka dalam array menunjukkan persentase jarak antara batas awal dan batas akhir dan berada dalam rentang 0,0 hingga 1,0, di mana 0,0 menunjukkan batas awal gradien dan 1,0 menunjukkan batas akhir. Posisi campuran antara 0,0 dan 1,0 menunjukkan garis, paralel dengan garis batas, yang merupakan pecahan jarak tertentu dari batas awal ke batas akhir. Misalnya, posisi campuran 0,7 menunjukkan garis yang 70 persen dari jarak dari batas awal ke batas akhir. Warnanya konstan pada garis yang sejajar dengan garis batas.

[in] count

Jenis: INT

Bilangan bulat yang menentukan jumlah faktor campuran yang akan diambil. Sebelum memanggil metode LinearGradientBrush::GetBlend dari objek LinearGradientBrush , panggil metode LinearGradientBrush::GetBlendCount dari objek LinearGradientBrush yang sama untuk menentukan jumlah faktor campuran saat ini. Jumlah posisi campuran yang diambil sama dengan jumlah faktor campuran yang diambil.

Menampilkan nilai

Jenis: Status

Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .

Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .

Keterangan

Objek LinearGradientBrush memiliki dua batas paralel: batas awal dan batas akhir. Warna dikaitkan dengan masing-masing dari dua batas ini. Setiap batas adalah garis lurus yang melewati titik tertentu — batas awal melewati titik awal; batas akhir melewati titik akhir — dan tegak lurus dengan arah sikat gradien linier. Arah kuas gradien linier mengikuti garis yang ditentukan oleh titik awal dan akhir. Garis ini, "garis arah," mungkin horizontal, vertikal, atau diagonal. Semua titik yang terletak pada garis yang sejajar dengan batas adalah warna yang sama. Saat Anda mengisi area dengan kuas gradien linier, warna berubah secara bertahap dari satu baris ke baris berikutnya saat Anda bergerak di sepanjang garis arah dari batas awal ke batas akhir. Secara default, perubahan warna sebanding dengan perubahan jarak; yaitu, garis 30 persen jarak antara batas awal dan batas akhir memiliki warna yaitu 30 persen dari jarak antara warna batas awal dan warna batas akhir. Pola warna diulang di luar batas awal dan akhir.

Anda dapat memanggil metode LinearGradientBrush::SetBlend dari objek LinearGradientBrush untuk menyesuaikan hubungan antara warna dan jarak. Misalnya, Anda mengatur posisi campuran ke {0, 0,5, 1} dan Anda mengatur faktor campuran ke {0, 0,3, 1}. Kemudian garis 50 persen jarak antara batas awal dan batas akhir akan memiliki warna yaitu 30 persen dari jarak antara warna batas awal dan warna batas akhir.

Contoh

Contoh berikut membuat kuas gradien linier, mengatur perpaduannya, dan menggunakan kuas untuk mengisi persegi panjang. Kode kemudian mendapatkan campuran. Faktor dan posisi campuran kemudian dapat diperiksa atau digunakan dalam beberapa cara.

VOID Example_GetBlend(HDC hdc)
{
   Graphics myGraphics(hdc);

   // Create a linear gradient brush, and set its blend.
   REAL fac[] = {0.0f, 0.4f, 0.6f, 1.0f};
   REAL pos[] = {0.0f, 0.2f, 0.8f, 1.0f};

   LinearGradientBrush linGrBrush(
      Point(0, 0), 
      Point(100, 0),
      Color(255, 255, 0, 0),   // red
      Color(255, 0, 0, 255));  // blue

   linGrBrush.SetBlend(fac, pos, 4);

   // Use the linear gradient brush to fill a rectangle.
   myGraphics.FillRectangle(&linGrBrush, 0, 0, 100, 50);

   // Obtain information about the linear gradient brush.
   INT   blendCount;
   REAL* factors = NULL;
   REAL* positions = NULL;

   blendCount = linGrBrush.GetBlendCount();
   factors = new REAL[blendCount];
   positions = new REAL[blendCount];

   linGrBrush.GetBlend(factors, positions, blendCount);

   for(INT j = 0; j < blendCount; ++j)
   {
      // Inspect or use the value in factors[j].
      // Inspect or use the value in positions[j].
   }
}

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

Mengisi Bentuk dengan Sikat Gradien

Mengisi Bentuk dengan Gradien Warna

LinearGradientBrush

LinearGradientBrush::GetBlendCount

LinearGradientBrush::SetBlend

Titik