更改 Paintbox 大小和图形问题

Changing Paintbox size and graphics problem

每当我更改颜料盒的大小时,颜料盒只会自行清除,不会在同一过程中添加任何图形。

这就是我想要做的(BMP 是位图)。

 PaintBox1.Width := PaintBox1.Width - 20;
 PaintBox1.Height := PaintBox1.Height - 20;
 BMP.Width := PaintBox1.Width;
 BMP.Height := PaintBox1.Height;
 Paintbox1.Canvas.Draw(0,0,BMP,255);

我已经尝试创建另一个绘制位图的过程,并且 运行 在更改颜料盒的大小后立即执行此操作,但这也不起作用。

它似乎只在我将 Canvas.Draw 分配给另一个程序并随后使用另一个按钮执行它时才起作用。

有什么解决办法吗?

只要 Windows 需要,屏幕上的图形就会重新绘制。 Windows 消息系统在需要完成绘制时向 window 句柄发送一条 WM_PAINT 消息。在 Delphi 中,在大多数情况下,尤其是 TPaintBox,这意味着实现 OnPaint 事件处理程序。每次 Windows 需要您绘画时都会触发此事件。