Как правильно рисовать прозрачный текст на DC
Я рисую текстовую строку с прозрачным фоном, используя CDC::SetBkMode(прозрачный) и CDC::DrawText().
Это прекрасно работает, но если текст меняется, я (очевидно) заканчиваю беспорядком на экране, так как каждый раз, когда я рисую строку, она находится поверх предыдущей.
Каков предпочтительный метод стирания фона перед рисованием строки?
Что я уже пробовал:
Я попытался вызвать InvalidateRect() и UpdateWindow (), чтобы стереть фон. Я также попытался захватить фон в растровое изображение и перерисовать его, прежде чем рисовать текст сверху.
Оба метода работают, но я хотел бы знать, есть ли лучший способ.