パレットのアニメーション化
[このページに関連付けられている機能 DrawDib は、従来の機能です。 MediaComposition クラスに置き換わりました。 MediaComposition クラスは、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードで DrawDib ではなく MediaComposition クラスを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
次の例では、 DrawDibRealize、 DrawDibChangePalette、DrawDibDraw 関数を使用してパレット を アニメーション化します。
DrawDibChangePalette と組み合わせて DrawDibBegin 関数を使用すると、ビットマップの色を変更できます。 最初に、パレットの変更を許可するには、 DrawDibBegin の呼び出しで DDF_ANIMATE フラグを指定します。 次に、 DrawDibChangePalette を使用してパレット エントリからカラー テーブルの値を設定します。
たとえば、lppe が新しい色を含む PALETTEENTRY 配列のアドレスであり、lpbi が DrawDibBegin または 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);
関連トピック