Фрагмент программы анимированного движения фигуры:
| Код | BitBlt(Buffer.Canvas.Handle, 0, 0, Form1.PaintBox1.Width, Form1.PaintBox1.Height, Form1.PaintBox1.Canvas.Handle, 0, 0, SRCCOPY);
|
Здесь происходит копирование фона в память для его последующего восстановления с отсутствием мерцания. Фон копируется, затем происходит перерисовка фигуры, затем фон восстанавливается. Однако, если перекрыть форму Form1 во время выполнения каким-либо другим окном, то эта функция BitBlt, несмотря на аргумент Form1.PaintBox1.Canvas.Handle производит копирование из другого окна (которое на данный момент активно), из соответсвующей области. У кого какие предложения, как побороть сей недуг? |