Menambahkan Penangan Pesan 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 mengilustrasikan penangan pesan sederhana untuk pesan WM_PALETTECHANGED dan WM_QUERYNEWPALETTE . Contoh menggunakan fungsi DrawDibRealize untuk memproses pesan WM_QUERYNEWPALETTE .

Aplikasi Anda harus merespons pesan WM_QUERYNEWPALETTE dengan membatalkan jendela tujuan untuk membiarkan fungsi DrawDibDraw menggambar ulang gambar. Anda harus menanggapi pesan WM_PALETTECHANGED dengan menggunakan fungsi DrawDibRealize untuk mewujudkan palet.

case WM_PALETTECHANGED: 
    if ((HWND)wParam == hwnd) 
        break; 
case WM_QUERYNEWPALETTE: 
    hdc = GetDC(hwnd); 
    f = DrawDibRealize(hdd, hdc, FALSE) > 0; 
    ReleaseDC(hwnd, hdc); 
    if (f) 
        InvalidateRect(hwnd, NULL, TRUE); 
    break; 

Menggunakan DrawDib