Freigeben über


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); 

Verwenden von DrawDib