本文主要是介绍InvalidateRect( LPCRECT lpRect) 以及 RedrawWindow( LPCRECT lpRect) 中的重绘部分区域 是什么含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Invalidate(),发送WM_PAINT消息 调用 OnPaint()重绘
InvalidateRect(rect),也是发送WM_PAINT消息,调用OnPaint()重绘
两个都是调用OnPaint(), 那它们有什么区别呢?InvalidateRect(rect)仅使矩形区域无效是什么意思呢,难道矩形区域以外的地方,绘图时没有任何改变吗?
我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。
Invalidate() 使窗口无效,在重绘时,首先用背景色将显示区清除,然后再调用OnPaint()中的内容。因为背景色和绘图有反差,所以会闪烁。
这篇关于InvalidateRect( LPCRECT lpRect) 以及 RedrawWindow( LPCRECT lpRect) 中的重绘部分区域 是什么含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!