当前位置:C++技术网 > 精选软件 > 无效矩形无效区域到底是什么东西

无效矩形无效区域到底是什么东西

更新时间:2015-12-06 22:06:48浏览次数:1+次

    在学习win32时,对于无效区域或者无效矩形,想必很多人初学都疑难重重。我就在这里,将这个概念说清楚。
    我就先说说,什么是无效?什么是无效矩形?什么是无效区域?
    什么是无效?一说什么东西无效了,自然是理解为它不可用了。比如说游戏手柄失灵了或者坏了,就是指游戏手柄无效了。这就意味着,要买一个新的替换咯。喜欢玩游戏的你,当然不假思索的就换了呗。
    什么是无效矩形?矩形就是一个四四方方的四方形,或者是正方形或者是长方形。而这个矩形就是在窗口客户区的范围内的。这个矩形可以是整个客户区,也可以是客户区内的一个小矩形。因为客户区中就是程序绘制图形的地方,绘图可以在客户区的任何地方绘制。而在WM_PAINT客户区重绘消息处理中,只会对需要重新绘制的地方绘制。而重新绘制的地方在WM_PAINT消息处理中就被称为无效的地方。因为这个地方要重新画了,那么之前话的内容就失去了意义,就变成无效信息。而这个要重新绘制的地方是一个矩形,所以叫做无效矩形。
    而对于无效矩形的处理,就是画上新的东西替换掉原先的东西,就和换游戏手柄替换坏掉的游戏手柄一个意思。
    什么是无效区域?而绘制客户区,可能在两次绘制过程中,要绘制两个不同的矩形,而这两个矩形又不能对齐的合成一个大矩形,这样组成的两个矩形的就是无效区域。不过,windows会将这两个无效矩形合并为一个大矩形,这样可以在一次重绘中将两个无效矩形要绘制的内容一次性搞定。
    以下是图形演示:
无效矩形无效区域到底是什么东西
    最外面的黑框是整个客户区所占的地方,无效矩形1是第一个无效矩形,这里是要重新画图的矩形区域,无效矩形2也是要重新被绘制的区域。要重新绘制可能是因为这两个矩形内的信息已经过期,需要重新显示最新的内容。
    而内部的黑框则是最小包含了两个无效矩形,让这个大的矩形成为一个新的无效矩形,这样可以在一次绘制过程中将这个大矩形一次绘制了。虽然多绘制了一些东西,但是对于要绘制两次来说,还是比较划算的。一是方便,二是效率也差不多。