次の方法で共有


パレットのアニメーション化

[このページに関連付けられている機能 DrawDib は、従来の機能です。 MediaComposition クラスに置き換わりました。 MediaComposition クラスは、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードで DrawDib ではなく MediaComposition クラスを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

次の例では、 DrawDibRealizeDrawDibChangePalette、DrawDibDraw 関数を使用してパレット アニメーション化します。

DrawDibChangePalette と組み合わせて DrawDibBegin 関数を使用すると、ビットマップの色を変更できます。 最初に、パレットの変更を許可するには、 DrawDibBegin の呼び出しで DDF_ANIMATE フラグを指定します。 次に、 DrawDibChangePalette を使用してパレット エントリからカラー テーブルの値を設定します。

たとえば、lppe が新しい色を含む PALETTEENTRY 配列のアドレスであり、lpbiDrawDibBegin または DrawDibDraw で使用される BITMAPINFOHEADER 構造体である場合、次のフラグメントは 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); 

DrawDib の使用