矩形和區域
Windows 包含了幾種使用 RECT(矩形)結構和 RGN 區域的繪圖函數。區域就是屏幕上的一塊地方,它是矩形、多邊形和橢圓的組合。
下面 3 個繪圖函數需要一個指向矩形結構的指針:
在這些函數中,rect 參數是一個 RECT 形態的結構,它包含有 4 個字段:left、top、right 和 bottom。這個結構中的坐標被當作邏輯坐標。
FillRect 用指定畫刷來填入矩形,該函數不需要先將畫刷選進設備內容。
FrameRect 使用畫刷畫矩形框,但是不填入矩形。使用畫刷畫矩形看起來有點奇怪,因為對於所介紹過的函數(如 Rectangle),其邊線都是用目前畫筆繪制的。FrameRect 允許使用者畫一個不一定為純色的矩形框。該邊界框為一個邏輯單位元寬。如果邏輯單位大於設備單位,則邊界框將會為 2 個像素寬或者更寬。
InvertRect 將矩形中所有像素翻轉,1 轉換成 0,0 轉換為 1,該函數將白色區域轉變成黑色,黑色區域轉變為白色,綠色區域轉變成洋紅色。
調用 SetRect 函數可以設定矩形區域:
SetRect (&rect, xLeft, yTop, xRight, yBottom) ;
下面8個函數,能搞方便的實現一些基本操作。
將矩形眼X軸和Y軸移動幾個單元:
offsetRect (&rect,x,y);
增減矩形的尺寸:
InflateRect(&rect,x,y);
矩形各字段設定為0:
SetRectEmpty(&rect);
將矩形復制給另一個矩形:
CopyRect(&DestRect,&SrcRect);
取得兩個矩形的交集:
IntersectRect(&DestRect,&SrcRect1,&SrcRect2);
取得兩個矩形的合集:
UnionRect(&DestRect,&SrcRect1,&SrcRect2);
確定矩形是否為空:
bEmpty = IsRectEmpty(&rect);
確定點是否在矩形內:
bInRect = PtInRect(&rect,point);
本文出自 “iphone10” 博客,請務必保留此出處http://iphone10.blog.51cto.com/6931928/1264866