Hinzufügen von Palettenmeldungshandlern

Das folgende Beispiel veranschaulicht einfache Meldungshandler für die WM _ PALETTECHANGED- und WM _ QUERYNEWPALETTE-Meldungen. Im Beispiel wird die DrawDibRealize-Funktion verwendet, um die WM _ QUERYNEWPALETTE-Nachricht zu verarbeiten.

Ihre Anwendung sollte auf die WM _ QUERYNEWPALETTE-Nachricht reagieren, indem sie das Zielfenster für ungültig erklärt, damit die DrawDibDraw-Funktion ein Bild neu zeichnet. Sie sollten auf die WM _ PALETTECHANGED-Nachricht reagieren, indem Sie die DrawDibRealize-Funktion verwenden, um die Palette zu realisieren.

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; 

Verwenden von DrawDib