У меня есть C ++ / CLI System::Windows::Forms::UserControl
производный элемент управления, который должен перерисовывать только (небольшую часть) сам по мере поступления в него новых данных.По какой-то причине, однако, механизм OnPaint вызывается, даже когда ничто не вызывает его вне приложения.
Вот фрагмент:
void Spectrogram::OnPaint(System::Windows::Forms::PaintEventArgs ^e)
{
// Overidden to stop the background being painted(?)
}
void Spectrogram::AddNewFFTData( float* data, int fataWidth )
{
Graphics^ gfx = CreateGraphics();
//now do some drawing
gfx->Dispose();
}
Поэтому я вызываю метод add data длядобавьте некоторые новые данные, которые теоретически должны быть записаны поверх предыдущей записи (которая очищает некоторые выделения) и напишите новую запись.
В тот день, когда я использовал для разработки приложений MFC / OpenGL, и одной из первых вещей, которые ябыло бы переопределить метод OnEraseBackground
.Однако, насколько я понимаю, нет очевидного способа остановить его удаление.Что я пропустил?