Не следует отправлять сообщение рисования напрямую, а вместо этого сделать недействительной область, которую нужно перекрасить (InvalidateRect (& area)), и позволить системе обработать его.Отправляя только краску, вы ничего не получаете, потому что система говорит: «Нет области, которая требует рисования, поэтому для эффективности я не буду беспокоиться» - или, скорее, область клипа, которая ограничивает рисование, будет пустой (нет области обновления).Делая недействительной область, вы сообщаете системе, что эта область нуждается в перерисовке, поэтому следующий вызов рисования будет иметь действительную область обрезки, и вы увидите изменение.
(Лучше использовать wsprintf_s () с размером буфера - фактически, поскольку вы, кажется, используете MFC, используйте взамен CString и CString :: Format () - и вы не должны вызывать базовый класс OnPaint ()(это не имеет никакого эффекта, поскольку, когда CPaintDC выходит из области видимости, он очищает любую область обновления).