Invalidate, Update, Repaint, Refresh的异同

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

#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。当您需要频繁请求此操作时,这一点尤为重要。因为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值