У меня есть небольшая головоломка для рисования текста под Win32. Я пытаюсь нарисовать некоторые инструкции для пользователей моего приложения в верхней части окна.
Пожалуйста, обратитесь к следующему окну (я изменил цвет фона текста, чтобы вы могли видеть границы)
(источник: billy-oneal.com )
В настоящее время я использую DrawTextEx для рисования текста в моем окне, но проблема в том, что оно не заполняет весь RECTangle, который я ему даю. Не рисовать эту область просто нормально, пока размер окна не изменится:
(источник: billy-oneal.com )
Когда текст переупаковывается из-за изменения размера окна, поскольку DrawTextEx не очищает фон, эти артефакты остаются.
Я пытался использовать FillRect, чтобы заполнить область позади вызова рисования текста, что устраняет визуальные артефакты, но затем заставляет текст постоянно мерцать, так как он полностью стирается и затем полностью перерисовывается на дисплее.
Есть идеи, как получить область, не содержащую текст, для рисования цветом фона?
РЕДАКТИРОВАТЬ: я хотел бы избежать дублирования буфера формы, если это возможно в приложении.
EDIT2: я решил проблему, перерисовав текст только тогда, когда обнаружил, что перенос изменяется во время изменения размера.