Palet

Fungsi DrawDib mengharuskan aplikasi merespons dua pesan berorientasi palet: WM_QUERYNEWPALETTE dan WM_PALETTECHANGED. Jika aplikasi Anda tidak sadar palet, Anda harus menambahkan handler untuk setiap pesan ini. Untuk informasi selengkapnya tentang memproses pesan WM_QUERYNEWPALETTE dan WM_PALETTECHANGED , lihat Menambahkan Penangan Pesan Palet.

Anda dapat mewujudkan palet DrawDib saat ini ke DC dengan menggunakan fungsi DrawDibRealize . Anda harus mewujudkan palet sebagai respons terhadap pesan WM_QUERYNEWPALETTE atau WM_PALETTECHANGED , atau ketika Anda bersiap untuk menampilkan urutan gambar dengan menggunakan fungsi DrawDibDraw .

Anda dapat menggambar gambar yang dipetakan ke palet lain dengan menggunakan fungsi DrawDibSetPalette . Fungsi ini memaksa DrawDib DC untuk menggunakan palet yang ditentukan, yang dapat memengaruhi kualitas gambar. Misalnya, aplikasi yang sadar palet mungkin telah mewujudkan palet dan perlu mencegah DrawDib mewujudkan paletnya sendiri. Aplikasi dapat menggunakan DrawDibSetPalette untuk memberi tahu DrawDib tentang palet yang akan digunakan.

Anda dapat memperoleh handel palet latar depan saat ini dengan menggunakan fungsi DrawDibGetPalette . Jika aplikasi Anda menggunakan palet latar depan saat ini, aplikasi tersebut tidak memiliki penggunaan palet secara eksklusif dan aplikasi lain dapat membatalkan handel palet. Aplikasi Anda tidak boleh membebaskan palet ketika Anda selesai menggunakannya. Membebaskan palet dapat membatalkan handel palet untuk aplikasi lain.

Anda dapat menyiapkan DrawDib untuk menerima nilai warna baru untuk paletnya dengan menggunakan fungsi DrawDibChangePalette . Dalam kode berikut DrawDibChangePalette, Anda menetapkan nilai baru untuk tabel warna palet. Jika bendera DDF_ANIMATE tidak diatur di DrawDib DC saat Anda memanggil DrawDibChangePalette, Anda dapat memberlakukan perubahan palet dengan menggunakan DrawDibRealize untuk mewujudkan palet. Anda kemudian dapat menggunakan DrawDibDraw untuk menggambar ulang gambar. Jika bendera DDF_ANIMATE diatur di DrawDib DC, Anda dapat menganimasikan palet dan warna bitmap yang ditampilkan dengan menggunakan DrawDibDraw atau DrawDibRealize. Anda dapat memperbarui bendera DDF_ANIMATE dengan menggunakan fungsi DrawDibEnd dan DrawDibBegin .

Catatan

Jika Anda membebaskan palet DrawDib saat dipilih oleh DC, kesalahan antarmuka perangkat grafis (GDI) dapat mengakibatkan saat DC menggunakan palet. Sebagai gantinya, aplikasi Anda harus menggunakan DrawDibSetPalette untuk mengubah DrawDib DC untuk menggunakan palet default atau palet lain.

 

Fungsi DrawDibEnd, DrawDibClose, dan DrawDibBegin dapat membebaskan palet DrawDib. Namun, fungsi-fungsi ini harus digunakan hanya ketika palet belum dipilih oleh DC. Fungsi DrawDibDraw juga dapat membebaskan palet saat menggunakan DrawDib DC yang sama, tetapi menentukan parameter gambar yang berbeda (lpbi, dxDst, dyDst, dxSrc, atau dySrc) atau format yang berbeda.

Penyajian Gambar