程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 多邊形和剪貼區域

多邊形和剪貼區域

編輯:關於C語言

 

多邊形也是一個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 )完成這一功能。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved