GDI区域是什么意思?区域和矩形的关系是什么?

2434 人浏览 | 时间: 2016-01-22 21:53:32 | 作者: codexia

    矩形,就是由左上角和右下角两个点确定的长方形,正方形为长方形的特例。我们要绘制一个矩形,给出两个点就可以了。如果你想只画矩形的边框,可以使用函数FrameRect,如果只想填充矩形的内部,可以使用FillRect函数,如果想同时操作边框和内部,可以使用Rectangle函数。关于矩形的这三个操作,详细使用参考文章《FillRect、FrameRect与Rectangle矩形绘制函数使用对比分析》。
    如果要学习更多关于矩形的知识,请在C++技术网的搜索框中输入“Rect”即可搜索到所有相关文章。这样你就可以全面的学习矩形的知识了。
    当你学完这些文章之后,你会发现,矩形很简单了。在开发中,经常会用到矩形的地方,而矩形只是一个简单的开始而已。
    毕竟矩形本身确实很简单,还有其他各种形状的绘制,可以自己参考MSDN了。这里推荐一篇《Win32绘制饼状图分析搜索引擎市场份额》。这篇文章可以让你了解其他形状的绘制,也不再本文多说。
    区域就是作为更广泛的用途而存在的。不管是矩形也好,还是椭圆、饼状图还是其他形状,毕竟只是一个单一的形状。而很多情况需要不规则的形状组合形成一个区块。那么这个就是区域了。区域就是一系列形状的组合,是多个性质的并集。当然单个的形状是区域的一个特例。比如一个矩形也可以构成区域,这就是矩形区域。一个椭圆也可以是一个区域,叫做椭圆区域。这些是GDI中的区域,不是地理上的区域。
    如果你只要绘制一个单独的矩形、椭圆之类的简单形状,完全用不上区域。况且,区域是要创建的,属于GDI对象。而简单的形状则只用来绘制图案形状即可,系统不会为矩形保留资源句柄。
    那么矩形和区域的区别就出现了。矩形、椭圆这些简单的形状,只是提供一个形状来确定绘制的范围而已。区域则不仅用来确定范围,而且因为区域通常由多个形状组合而成,所以系统要在绘制前确定绘制范围,就要用存储的区域句柄的得到组合的多个形状,从而确定绘制的范围。那么区域就占用了系统资源了。除非你需要用到区域,否则直接用简单的形状即可。
    那么区域解释到这里,就差不多了。区域就是由多个形状组合得到的一个范围,属于不规则的形状,无法用简单的形状描述的区块。系统用一个句柄对一个区域做一个标记,在绘制时再计算绘制的范围。确定了绘制的范围之后,区域就完成了它的使命。那么最后,区域还需要释放区域句柄。这样就真的全身而退了。
    至于区域的使用以及更多的知识分析,请关注C++技术网更新的文章。

请微信扫码阅读
为防止恶意爬虫,
已开启反爬机制