Ajout de gestionnaires de messages de palette

[La fonctionnalité associée à cette page, DrawDib, est une fonctionnalité héritée. Il a été remplacé par la classe MediaComposition. La classe MediaComposition a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise la classe MediaComposition au lieu de DrawDib, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

L’exemple suivant illustre des gestionnaires de messages simples pour les messages WM_PALETTECHANGED et WM_QUERYNEWPALETTE . L’exemple utilise la fonction DrawDibRealize pour traiter le message WM_QUERYNEWPALETTE .

Votre application doit répondre au message WM_QUERYNEWPALETTE en invalidant la fenêtre de destination pour permettre à la fonction DrawDibDraw de redessiner une image. Vous devez répondre au message WM_PALETTECHANGED à l’aide de la fonction DrawDibRealize pour réaliser la palette.

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; 

Utilisation de DrawDib