Animieren einer Palette

Im folgenden Beispiel wird eine Palette mithilfe der Funktionen DrawDibRealize, DrawDibChangePaletteund DrawDibDraw animiert.

Sie können die Farben einer Bitmap ändern, indem Sie die DrawDibBegin-Funktion in Kombination mit DrawDibChangePaletteverwenden. Um Palettenänderungen zuzulassen, geben Sie zunächst das DDF _ ANIMATE-Flag im Aufruf von DrawDibBegin an. Legen Sie als Zweites die Farbtabellenwerte aus den Paletteneinträgen fest, indem Sie DrawDibChangePalette verwenden.

Wenn lppe beispielsweise eine Adresse des PALETTEENTRY-Arrays ist, das die neuen Farben enthält, und lpbi die BITMAPINFOHEADER-Struktur ist, die in DrawDibBegin oder DrawDibDrawverwendet 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