#Invalidate, Update, Repaint, Refresh的异同
文章目录
Invalidate
Invalidate方法通知Windows窗体的整个表面都应该重新绘制。最重要的是,Invalidate不会立即强制执行绘制操作。Windows只存储请求,只响应请求。
当前程序完全执行后,以及系统中没有其他未决事件后。Windows故意延迟绘制操作,因为这是最耗时的操作之一。有时因为这种延迟,只有在多次更改后才能绘制表单,从而避免多次连续调用(慢速)绘制方法。
Update
Update方法要求Windows更新表单的内容,立即重新绘制表单。
但是,请记住,只有在存在无效区域时,才会执行此操作;如果没有无效区域,则调用Update完全无效。
如果刚刚调用了Invalidate方法,或者是用户操作Update,就会发生这种情况。
因此,在调用Invalidate之后,通常会调用Update——也就是Repaint方法。
Repaint
Repaint方法就是依次调用Invalidate和Update。因此,它会立即激活OnPaint事件。
当需要向表单请求重新绘制操作时,通常应该按照标准的Windows方法调用Invalidate。当您需要频繁请求此操作时,这一点尤为重要。因为:

本文探讨了C++中Invalidate, Update, Repaint, Refresh四个方法在窗口重绘过程中的异同。Invalidate标记区域需要更新但不立即绘制,Update强制更新并绘制,Repaint结合两者,而Refresh通常与Repaint效果相似,用于界面刷新。了解这些方法的使用时机有助于优化应用性能。"
109254216,7401120,GRPC-http2详解:连接、SETTINGS帧与DATA帧解析,"['GRPC', 'HTTP2', '网络协议', 'TCP/IP', 'TLS']
最低0.47元/天 解锁文章
5609

被折叠的 条评论
为什么被折叠?



