Compartir a través de


Animar una paleta

[La característica asociada a esta página, DrawDib, es una característica heredada. Se ha reemplazado por la clase MediaComposition. La clase MediaComposition se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use la clase MediaComposition en lugar de DrawDib, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

En el ejemplo siguiente se anima una paleta mediante las funciones DrawDibRealize, DrawDibChangePalette y DrawDibDraw .

Puede cambiar los colores de un mapa de bits mediante la función DrawDibBegin en combinación con DrawDibChangePalette. En primer lugar, para permitir cambios en la paleta, especifique la marca DDF_ANIMATE en la llamada a DrawDibBegin. En segundo lugar, establezca los valores de la tabla de colores de las entradas de la paleta mediante DrawDibChangePalette.

Por ejemplo, si lppe es una dirección de la matriz PALETTEENTRY que contiene los nuevos colores, y lpbi es la estructura BITMAPINFOHEADER usada en DrawDibBegin o DrawDibDraw, el siguiente fragmento actualiza la tabla de colores DIB.

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

Uso de DrawDib