更改Paintbox大小和图形问题

时间:2019-03-09 14:59:51

标签: delphi pascal

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

这就是我想要做的(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分配给另一个过程并随后使用另一个按钮执行时才起作用。

有解决方案吗?

1 个答案:

答案 0 :(得分:2)

只要Windows需要,绘制屏幕上的图形都会重新绘制。当需要进行绘制时,Windows消息系统会将WM_PAINT消息发送到窗口句柄。在Delphi中,在大多数情况下,尤其是TPaintBox,这意味着实现OnPaint事件处理程序。每当Windows需要您进行绘画时,都会触发此事件。