softwaremonkey Ответов: 1

Как правильно рисовать прозрачный текст на DC


Я рисую текстовую строку с прозрачным фоном, используя CDC::SetBkMode(прозрачный) и CDC::DrawText().

Это прекрасно работает, но если текст меняется, я (очевидно) заканчиваю беспорядком на экране, так как каждый раз, когда я рисую строку, она находится поверх предыдущей.

Каков предпочтительный метод стирания фона перед рисованием строки?

Что я уже пробовал:

Я попытался вызвать InvalidateRect() и UpdateWindow (), чтобы стереть фон. Я также попытался захватить фон в растровое изображение и перерисовать его, прежде чем рисовать текст сверху.

Оба метода работают, но я хотел бы знать, есть ли лучший способ.

1 Ответов

Рейтинг:
8

Rick York

InvalidateRect-это подходящий метод. Вероятно, вам придется передать его true, чтобы фон был перерисован, так как текст прозрачен.