对调色板进行动画处理
[与此页关联的功能 DrawDib 是旧版功能。 它已被 MediaComposition 类取代。 MediaComposition 类已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaComposition 类 而不是 DrawDib。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
以下示例使用 DrawDibRealize、 DrawDibChangePalette 和 DrawDibDraw 函数对调色板进行动画处理。
可以通过将 DrawDibBegin 函数与 DrawDibChangePalette 结合使用来更改位图的颜色。 首先,若要允许更改调色板,请在调用 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);
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈