Aggiunta di gestori messaggi di tavolozza

Nell'esempio seguente vengono illustrati i gestori di messaggi semplici per i messaggi WM_PALETTECHANGED e WM_QUERYNEWPALETTE . Nell'esempio viene usata la funzione DrawDibRealize per elaborare il messaggio di WM_QUERYNEWPALETTE .

L'applicazione deve rispondere al messaggio WM_QUERYNEWPALETTE invalidando la finestra di destinazione per consentire alla funzione DrawDibDraw di ridisegnare un'immagine. È necessario rispondere al messaggio WM_PALETTECHANGED usando la funzione DrawDibRealize per realizzare la tavolozza.

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 di DrawDib