Анимация палитры
[Функция, связанная с этой страницей, DrawDib, является устаревшей функцией. Он был заменен классом MediaComposition. Класс MediaComposition оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать класс MediaComposition вместо DrawDib, если это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
В следующем примере анимируется палитра с помощью функций DrawDibRealize, DrawDibChangePalette и DrawDibDraw .
Цвета растрового рисунка можно изменить с помощью функции DrawDibBegin в сочетании с DrawDibChangePalette. Во-первых, чтобы разрешить изменения палитры, укажите флаг DDF_ANIMATE в вызове DrawDibBegin. Во-вторых, задайте значения таблицы цветов из записей палитры с помощью DrawDibChangePalette.
Например, если lppe — это адрес массива PALETTEENTRY , содержащего новые цвета, а lpbi — это структура BITMAPINFOHEADER , используемая в DrawDibBegin или DrawDibDraw, следующий фрагмент обновляет таблицу цветов 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);
Связанные темы