TPaintBox重画的问题,高手们回答我呀(100分)

  • 主题发起人 主题发起人 ssyyxx
  • 开始时间 开始时间
S

ssyyxx

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TForm里的一个PaintBox的画布来画图,但是有其它窗口遮盖或最小化时,画的图就会消失,请问如何解决?在此先谢谢了。

还有那个“双缓冲”是什么?怎么用?
 
双缓冲就是将DoubleBuffered:=True
 
你截获wm_pain 事件
 
PaintBox是不保存用户绘制的图形的,也就是在paintbox被别的窗口覆盖时,必须在onpaint事件里由程序员负责重绘;如果不想这么做,可以选用Timage类
 
http://www.efile.com.cn/efile/dfw@97546/ss.rar
 
用TPaintBox可以在OnPaint事件里写绘制代码,在界面变化时会触发OnPaint。
双缓冲可以防止刷新界面时的闪烁,在TPaintBox上表现并不明显,可以在TImage上试一下双缓冲的效果。
 
双缓冲只能应用在TWinControl,比如定时器重绘TPaintBox,有闪烁,这时候,设置TPaintBox.Parent.DoubleBuffered:= True.就有助于防止闪烁.(注意DoubleBuffered比较消耗资源,没有必要尽量少用)
 
那我还是用TImage吧,慢点但是省事。(这个程序是给一个朋友编的,他的机子是3.06的CPU,肯定不会太慢,呵呵)
 
接受答案了.
 
后退
顶部