Я использую Borland C++ Builder 6.Paintbox оленья кожа краска из метода таймера C++ Builder Борланд
У меня есть два метода вида:
void __fastcall FDisplay::PaintBox1Paint(TObject *Sender)
void __fastcall FDisplay::TimerLabelsViewTimer(TObject *Sender)
В первом методе я рисую систему координат ,
и во втором методе я сделал:
PaintBox1->Canvas->MoveTo(693,201);
PaintBox1->Canvas->LineTo(770,187);
и линия не отображается в системе координат.
мой второй вопрос, как я могу стереть линию и вернуться к базовой краске? Должен ли я это делать?
PaintBox1->Invalidate();
PaintBox1->Update();
PaintBox не имеет возможности Undo/Redo так вам нужно 1. реализовать его самостоятельно, копируя базовый gfx в некоторый растровый рисунок, а затем использовать это как начальную точку для каждого перерисовки 2. перерисовать все в однократной рутине (как правило, одна процедура рисования лучше, а также более безопасна) 3. Если ваша строка не пересекает ничего, вы можете просто нарисуйте одну и ту же строку с цветом фона перед тем, как рисовать следующий. – Spektre
Нарушения недействительности и обновления обычно не используются напрямую. Они используются VCL для обработки собственных вещей. Они используются, чтобы планировать/принудить событие «OnPaint» и, возможно, больше. – Spektre