Hinzufügen von Paletten-Nachrichtenhandlern
[Das dieser Seite zugeordnete Feature DrawDib ist ein Legacyfeature. Sie wurde durch die MediaComposition-Klasse abgelöst. Die MediaComposition-Klasse wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit die MediaComposition-Klasse anstelle von DrawDib verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Im folgenden Beispiel werden einfache Nachrichtenhandler für die WM_PALETTECHANGED - und WM_QUERYNEWPALETTE-Nachrichten veranschaulicht. 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 ungültig macht, damit die DrawDibDraw-Funktion ein Bild neu zeichnen kann. 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;
Zugehörige Themen