Я рисую текст в окне в сообщении WM_PAINT, можно ли каким-либо образом обновить эту область окна до рисования новой строки текста, чтобы старый текст в том же месте был удален ?Обновить область в окне перед рисованием текста
1
A
ответ
1
Вам необходимо позвонить InvalidateRect для окна с параметром bErase
равным TRUE
так, что она будет стирать себя перед WM_PAINT генерируется.
Это часто требуется, когда окно является элементом управления статическим текстом, поскольку они не стираются автоматически при изменении их значения.
Убедитесь, что ваше окно правильно обрабатывает WM_ERASEBKGND, а класс окна не имеет NULL фоновой кисти, так как это механизм, используемый InvalidateRect для стирания.
0
Вы можете просто FillRect над старым текстом первого ...
0
HDC hdc = GetDC(NULL); //get windows handle whaterver if urs
HRGN hrgn;
//get that specific region and repaint it by following line
hrgn = CreateRectRgn(10, 10, 100, 100);
SelectClipRgn(hDC, hrgn);
PaintDesktop(hDC);
Да, но он не освежает себя, когда я рисую прямоугольник над ним. – user963241