Invalidate, Repaint, Update, Refresh区别
2011-12-07 22:32
441 查看
Refresh和Repaint是一样的,它只是简单地调用了Repaint.
Update会导致整个窗口(对于没有窗口的TGraphicControl来说,就是它的父控件的窗口)立即处理WM_PAINT消息,即重画应该画的部分.
Invalidate使控件所在窗口的控件客户区域(对于TWinControl来说就是它的客户区域,对于TGraphicControl来说就是它的父控件的窗口在它的区域范围内的部分)失效,从而产生一个WM_PAINT消息,但并不马上重绘,直到其它消息处理完或遇到一个Update的调用.
Repaint是立即重绘该控件,在TWinControl中其实就是调用了Invalidate和Update,在TGraphiControl中分不同情况作了不同处理,逻辑稍复杂一些,但功能是一样的.
Update会导致整个窗口(对于没有窗口的TGraphicControl来说,就是它的父控件的窗口)立即处理WM_PAINT消息,即重画应该画的部分.
Invalidate使控件所在窗口的控件客户区域(对于TWinControl来说就是它的客户区域,对于TGraphicControl来说就是它的父控件的窗口在它的区域范围内的部分)失效,从而产生一个WM_PAINT消息,但并不马上重绘,直到其它消息处理完或遇到一个Update的调用.
Repaint是立即重绘该控件,在TWinControl中其实就是调用了Invalidate和Update,在TGraphiControl中分不同情况作了不同处理,逻辑稍复杂一些,但功能是一样的.
相关文章推荐
- WinForm-Invalidate、Update、Refresh的区别
- WinForm–Invalidate、Update、Refresh的区别
- c# Invalidate() Update() Refresh()的区别
- C# WinForm窗体 控件Control 的 Invalidate、Update、Refresh的区别
- Invalidate、Update、Refresh的作用和区别
- c# Invalidate() Update() Refresh()的区别
- Invalidate,Update与Refresh的区别
- .net c#控件 Invalidate、Update、Refresh的区别
- Invalidate,Update与Refresh的区别
- 【转】C# Invalidate() Update() Refresh()的区别
- .net c#控件 Invalidate、Update、Refresh的区别
- Invalidate、Update、Refresh的作用和区别
- Invalidate、Update、Refresh的作用和区别
- WinForm--Invalidate、Update、Refresh的区别
- Control.Invalidate, Control.Update and Control.Refresh 有什么区别
- Invalidate()与UpdateAllViews()的区别(转载)
- c# Invalidate() Update() Refresh()的区别
- repaint,update和paint方法的区别
- Winform程序中,Invalidate、Update和Refresh方法介绍
- Swing 重绘 repaint,updateUI区别