Bagikan melalui


Menganimasikan Palet

[Fitur yang terkait dengan halaman ini, DrawDib, adalah fitur warisan. Ini telah digantikan oleh kelas MediaComposition. Kelas MediaComposition telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan kelas MediaComposition alih-alih DrawDib, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Contoh berikut menganimasikan palet dengan menggunakan fungsi DrawDibRealize, DrawDibChangePalette, dan DrawDibDraw .

Anda dapat mengubah warna bitmap dengan menggunakan fungsi DrawDibBegin dalam kombinasi dengan DrawDibChangePalette. Pertama, untuk mengizinkan perubahan palet, tentukan bendera DDF_ANIMATE dalam panggilan ke DrawDibBegin. Kedua, atur nilai tabel warna dari entri palet dengan menggunakan DrawDibChangePalette.

Misalnya, jika lppe adalah alamat array PALETTEENTRY yang berisi warna baru, dan lpbi adalah struktur BITMAPINFOHEADER yang digunakan dalam DrawDibBegin atau DrawDibDraw, fragmen berikut memperbarui tabel warna DIB.

hdc = GetDC(hwnd); 
DrawDibBegin(hdd, ....., DDF_ANIMATE); 
DrawDibRealize(hdd, hdc, fBackground); 
DrawDibDraw(hdd, hdc, ...., DDF_SAME_DRAW|DDF_SAME_HDC); 
 
// Call to change color. 
DrawDibChangePalette(hDD, iStart, iLen, lppe); 
. 
. 
. 
ReleaseDC(hwnd, hdc); 

Menggunakan DrawDib