Adicionando manipuladores de mensagens de paleta

[O recurso associado a esta página, DrawDib, é um recurso herdado. Ele foi substituído pela classe MediaComposition. A classe MediaComposition foi otimizada para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use a classe MediaComposition em vez de DrawDib, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O exemplo a seguir ilustra manipuladores de mensagens simples para as mensagens WM_PALETTECHANGED e WM_QUERYNEWPALETTE . O exemplo usa a função DrawDibRealize para processar a mensagem WM_QUERYNEWPALETTE .

Seu aplicativo deve responder à mensagem WM_QUERYNEWPALETTE invalidando a janela de destino para permitir que a função DrawDibDraw redesenhe uma imagem. Você deve responder à mensagem WM_PALETTECHANGED usando a função DrawDibRealize para realizar a 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; 

Usando DrawDib