Bagikan melalui


Fungsi GdiGradientFill (wingdi.h)

Fungsi GdiGradientFill mengisi struktur persegi panjang dan segitiga.

Sintaks

BOOL GdiGradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nCount,
  [in] ULONG      ulMode
);

Parameter

[in] hdc

Handel ke konteks perangkat tujuan.

[in] pVertex

Penunjuk ke array struktur TRIVERTEX yang masing-masing mendefinisikan sudut segitiga.

[in] nVertex

Jumlah simpul dalam pVertex.

[in] pMesh

Array struktur GRADIENT_TRIANGLE dalam mode segitiga, atau array struktur GRADIENT_RECT dalam mode persegi panjang.

[in] nCount

Jumlah elemen (segitiga atau persegi panjang) dalam pMesh.

[in] ulMode

Mode isian gradien. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
GRADIENT_FILL_RECT_H
Dalam mode ini, dua titik akhir menggambarkan persegi panjang. Persegi panjang didefinisikan memiliki warna konstanta (ditentukan oleh struktur TRIVERTEX ) untuk tepi kiri dan kanan. GDI menginterpolasi warna dari tepi kiri ke kanan dan mengisi interior.
GRADIENT_FILL_RECT_V
Dalam mode ini, dua titik akhir menggambarkan persegi panjang. Persegi panjang didefinisikan memiliki warna konstanta (ditentukan oleh struktur TRIVERTEX ) untuk tepi atas dan bawah. GDI menginterpolasi warna dari tepi atas ke bawah dan mengisi interior.
GRADIENT_FILL_TRIANGLE
Dalam mode ini, array struktur TRIVERTEX diteruskan ke GDI bersama dengan daftar indeks array yang menjelaskan segitiga terpisah. GDI melakukan interpolasi linier antara simpul segitiga dan mengisi interior. Gambar dilakukan langsung dalam mode 24 dan 32 bpp. Dithering dilakukan dalam mode 16-, 8-, 4-, dan 1-bpp.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE.

Keterangan

Catatan Fungsi ini sama dengan GradientFill.
 
Untuk menambahkan bayangan halus ke segitiga, panggil fungsi GdiGradientFill dengan tiga titik akhir segitiga. GDI akan secara linear menginterpolasi dan mengisi segitiga. Berikut adalah output gambar dari segitiga berteduh. Ilustrasi segitiga yang terisi dari oranye di titik atas ke magenta di garis bawah Untuk menambahkan bayangan halus ke persegi panjang, panggil GdiGradientFill dengan koordinat kiri atas dan kanan bawah persegi panjang. Ada dua mode bayangan yang digunakan saat menggambar persegi panjang. Dalam mode horizontal, persegi ber bayangan dari kiri-ke-kanan. Dalam mode vertikal, persegi berbayang dari atas ke bawah. Berikut adalah output gambar dari dua persegi panjang berteduh - satu dalam mode horizontal, yang lain dalam mode vertikal. Ilustrasi persegi panjang yang berbayang dari gelap di sisi kiri ke terang di sisi kanan Ilustrasi persegi panjang yang berbayang dari gelap di atas ke terang di bagian bawah Fungsi GdiGradientFill menggunakan metode jala untuk menentukan titik akhir objek untuk menggambar. Semua simpul diteruskan ke GdiGradientFill dalam array pVertex . Parameter pMesh menentukan bagaimana simpul ini tersambung untuk membentuk objek. Saat mengisi persegi panjang, pMesh menunjuk ke array struktur GRADIENT_RECT . Setiap struktur GRADIENT_RECT menentukan indeks dua simpul dalam array pVertex . Kedua simpul ini membentuk batas kiri atas dan kanan bawah dari satu persegi panjang.

Dalam kasus mengisi segitiga, pMesh menunjuk ke array struktur GRADIENT_TRIANGLE . Setiap struktur GRADIENT_TRIANGLE menentukan indeks tiga simpul dalam array pVertex . Ketiga puncak ini membentuk satu segitiga.

Untuk menyederhanakan akselerasi perangkat keras, rutinitas ini tidak diharuskan sempurna untuk piksel di interior segitiga.

Perhatikan bahwa GdiGradientFill tidak menggunakan anggota Alpha dari struktur TRIVERTEX . Untuk menggunakan GdiGradientFill dengan transparansi, panggil GdiGradientFill lalu panggil GdiAlphaBlend dengan nilai yang diinginkan untuk saluran alfa setiap vertex.

Untuk informasi selengkapnya, lihat Bayangan Halus, Menggambar Segitiga Teduh, dan Menggambar Persegi Ber bayangan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header wingdi.h (sertakan Windows.h)
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

Fungsi Bitmap

Gambaran Umum Bitmap

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX