Share via


Animation d’une palette

[La fonctionnalité associée à cette page, DrawDib, est une fonctionnalité héritée. Elle a été remplacée par la classe MediaComposition. La classe MediaComposition a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise la classe MediaComposition au lieu de DrawDib, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

L’exemple suivant anime une palette à l’aide des fonctions DrawDibRealize, DrawDibChangePalette et DrawDibDraw .

Vous pouvez modifier les couleurs d’une bitmap à l’aide de la fonction DrawDibBegin en combinaison avec DrawDibChangePalette. Tout d’abord, pour autoriser les modifications de palette, spécifiez l’indicateur DDF_ANIMATE dans l’appel à DrawDibBegin. Ensuite, définissez les valeurs de table de couleurs des entrées de palette à l’aide de DrawDibChangePalette.

Par exemple, si lppe est une adresse du tableau PALETTEENTRY contenant les nouvelles couleurs, et lpbi est la structure BITMAPINFOHEADER utilisée dans DrawDibBegin ou DrawDibDraw, le fragment suivant met à jour la table de couleurs 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); 

Utilisation de DrawDib