Animazione di una tavolozza

Nell'esempio seguente viene animata una tavolozza usando le funzioni DrawDibRealize, DrawDibChangePalette e DrawDibDraw.

È possibile modificare i colori di una bitmap usando la funzione DrawDibBegin in combinazione con DrawDibChangePalette. Prima di tutto, per consentire le modifiche del tavolozza, specificare il flag DDF_ANIMATE nella chiamata a DrawDibBegin. In secondo luogo, impostare i valori della tabella dei colori dalle voci della tavolozza usando DrawDibChangePalette.

Ad esempio, se lppe è un indirizzo della matrice PALETTEENTRY contenente i nuovi colori e lpbi è la struttura BITMAPINFOHEADER usata in DrawDibBegin o DrawDibDraw, il frammento seguente aggiorna la tabella dei colori 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 di DrawDib