这种图形的闪烁应如何解决呢?相关tmetafile重画的。(100分)

  • 主题发起人 主题发起人 noall
  • 开始时间 开始时间
N

noall

Unregistered / Unconfirmed
GUEST, unregistred user!
首先我在paintbox上画,画完一个图形,就将所画的图形在tmetafileCanvas(连接一个到tmetafile)上画,画了好几个图形。

如果这时在paintbox上乱画了一些图形,但没有在tmetafilecanvas上画,这时,将temtafile的图画在paintbox上,为什么那些

乱画的图形不会没呢?

EmfCer := Tmetafile.Create;
emfcer.width:=200;
emfcer.height:=200;
EmfCerCanvas := TmetafileCanvas.CreateWithComment(Gobalvar.EmfCer, 0,'','');
Try
//这里画一些图形多画几个更明显.
with emfcercanvas do begin
pen.color:=clblack;
brush.style:=bsclear;
EmfCerCanvas.Rectangle(0,0,100,100);
end;
Finally
EmfCerCanvas.Free;
End;
//在paintbox上随便画一些图形 多画几个更明显.
paintbox.canvas.moveto(0,0);
paintbox.canvas.lineto(100,100);
Paintbox.Canvas.StretchDraw(rect(0,0,paintface.width,paintface.height),
gobalvar.EmfCer);

这时paintbox上的线不会没??如何将这条线画没呢?

如果将 EmfCer.Transparent:=False; 也不行,
如果在tmetafilecanvas中先画一个空白矩形。

with emfcercanvas do begin
pen.color:=clwhite;
pen.style:=pssolid;
brush.Color :=clwhite;
brush.Style :=BsSolid;
EmfCerCanvas.Rectangle(0,0,width,height);

//这里画一些图形
pen.color:=clblack;
brush.style:=bsclear;
EmfCerCanvas.Rectangle(0,0,100,100);
end;

2、 这时线会没了,但图形将会闪烁(多画几个更明显,时闪得更明显)
 
呵呵,关注!
 
没有实际答案。

送分。
 
后退
顶部