Animieren einer Palette
[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 wird eine Palette mithilfe der Funktionen DrawDibRealize, DrawDibChangePalette und DrawDibDraw animiert .
Sie können die Farben einer Bitmap ändern, indem Sie die DrawDibBegin-Funktion in Kombination mit DrawDibChangePalette verwenden. Geben Sie zunächst das flag DDF_ANIMATE im Aufruf von DrawDibBegin an, um Palettenänderungen zuzulassen. Legen Sie anschließend die Farbtabellenwerte aus den Paletteneinträgen mithilfe von DrawDibChangePalette fest.
Wenn beispielsweise lppe eine Adresse des PALETTEENTRY-Arrays ist, das die neuen Farben enthält, und lpbi die BITMAPINFOHEADER-Struktur ist, die in DrawDibBegin oder DrawDibDraw verwendet wird, aktualisiert das folgende Fragment die DIB-Farbtabelle.
hdc = GetDC(hwnd);
DrawDibBegin(hdd, ....., DDF_ANIMATE);
DrawDibRealize(hdd, hdc, fBackground);
DrawDibDraw(hdd, hdc, ...., DDF_SAME_DRAW|DDF_SAME_HDC);
// Call to change color.
DrawDibChangePalette(hDD, iStart, iLen, lppe);
.
.
.
ReleaseDC(hwnd, hdc);
Zugehörige Themen