多边形和剪贴区域

2008-02-23 05:28:23来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

多边形也是个GDI对象,同样遵守其他GDI对象的规则,只是通常都不将其选入DC中。在MFC中多边形有CRgn表示。多边形用来表示一个不同和矩形的区域,和矩形具备相似的操作。如:检测某点是否在内部,并操作等。此外还得到一个包含此多边形的最小矩形。下面介绍一下多边形类的成员函数:

  • CreateRectRgn 由矩形创建一个多边形
  • CreateEllipticRgn 由椭圆创建一个多边形
  • CreatePolygonRgn 创建一个有多个点围成的多边形
  • PtInRegion 某点是否在内部
  • CombineRgn 两个多边形相并
  • EqualRgn 两个多边形是否相等

在本节中讲演多边形的意义在于重新在窗口中作图时提高效率。因为引发窗口重绘的原因是某个区域失效,而失效的区域用多边形来表示。假设窗口大小为500*400当上方的另一个窗口从(0,0,10,10)移动到(20,20,30,30)这时(0,0,10,10)区域就失效了,而您只需要重绘这部分区域而不是任何区域,这样您程式的执行效率就会提高。

通过调用API函数int GetClipRgn( HDC hdc, HRGN hrgn)就能够得到失效区域,但是一般用不着那么精确而只需得到包含该区域的最小矩形就能够了,所以能够利用int CDC::GetClipBox( LPRECT lpRect )完成这一功能。




标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 如何为嵌入式应用编写优秀的C 代码

下一篇: VC命名管道通信的实现

热门词条
热门标签