Fungsi GradientFill (wingdi.h)

Fungsi GradientFill mengisi struktur persegi panjang dan segitiga.

Sintaks

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

Parameter

[in] hdc

Handel ke konteks perangkat tujuan.

[in] pVertex

Penunjuk ke array struktur TRIVERTEX yang masing-masing mendefinisikan vertex.

[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] nMesh

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.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE.

Keterangan

Untuk menambahkan bayangan halus ke segitiga, panggil fungsi GradientFill 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 GradientFill 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 ber bayangan - satu dalam mode horizontal, yang lain dalam mode vertikal:Ilustrasi persegi panjang yang berbayang dari gelap di sisi kiri ke cahaya di sisi kananIlustrasi persegi panjang yang berbayang dari gelap di atas ke cahaya di bagian bawah Fungsi GradientFill menggunakan metode jala untuk menentukan titik akhir objek untuk menggambar. Semua simpul diteruskan ke GradientFill 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 GradientFill tidak menggunakan anggota Alpha dari struktur TRIVERTEX . Untuk menggunakan GradientFill dengan transparansi, panggil GradientFill lalu panggil AlphaBlend 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 Msimg32.lib
DLL Msimg32.dll

Lihat juga

Fungsi Bitmap

Gambaran Umum Bitmap

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX