Animazione di una tavolozza

[La funzionalità associata a questa pagina , DrawDib, è una funzionalità legacy. È stata sostituita dalla classe MediaComposition. La classe MediaComposition è stata ottimizzata per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi la classe MediaComposition anziché DrawDib, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Nell'esempio seguente viene animata una tavolozza usando le funzioni DrawDibDraw, 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 della 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 utilizzata 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