我已经将绘线代码放到onpaint事件中,但是被遮挡之后线条依然不见了哦 。这不太科学哦。 procedure TMainWindow.FormPaint(Sender: TObject); var pen:TPen; tmp:integer; begin MyPaint.DrawCanvas(PageIndex); tmp := CKBox_Querry.Top - 2; pen := TPen.Create; pen.Color := clblack; pen.Style := PSSOLID; pen.Width := 10; MainWindow.Canvas.MoveTo(0,tmp); MainWindow.Canvas.LineTo(700,tmp); end;
绘图的代码放到Form的OnPaint(WM_PAINT消息)事件处理函数中,然后Form每次收到需要重绘的消息后就会不停地绘制,所以图像不会消失,如果你不在OnPaint事件中处理,那么只是绘制一次,图像被遮住后需要重绘就会抹掉前面画的东西。同理IMAGE控件中已经内部在WM_PAINT消息中绘图了,你指定了一个图像给它,它就会处理了。你可以先阅读windows消息机制相关的书籍内容。
1,183
社区成员
14,336
社区内容
加载中
试试用AI创作助手写篇文章吧