Adición de controladores de mensajes de paleta

[La característica asociada a esta página, DrawDib, es una característica heredada. Se ha reemplazado por la clase MediaComposition. La clase MediaComposition se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use la clase MediaComposition en lugar de DrawDib, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

En el ejemplo siguiente se muestran controladores de mensajes simples para los mensajes WM_PALETTECHANGED y WM_QUERYNEWPALETTE . En el ejemplo se usa la función DrawDibRealize para procesar el mensaje de WM_QUERYNEWPALETTE .

La aplicación debe responder al mensaje WM_QUERYNEWPALETTE invalidando la ventana de destino para permitir que la función DrawDibDraw vuelva a dibujar una imagen. Debe responder al mensaje de WM_PALETTECHANGED mediante la función DrawDibRealize para realizar la paleta.

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; 

Uso de DrawDib