矩形函式

指向矩形結構的指標,8個函式,

指向矩形結構的指標

FillRect (hdc, &rect, hBrush) ;
FrameRect (hdc, &rect, hBrush) ;
InvertRect (hdc, &rect) ;
在這些函式中,rect參數是一個RECT型態的結構,它包含有4個欄位:left、top、right和bottom。這個結構中的坐標被當作邏輯坐標。
FillRect用指定畫刷來填入矩形(直到但不包含right和bottom坐標),該函式不需要先將畫刷選進裝置內容。
FrameRect使用畫刷畫矩形框,但是不填入矩形。使用畫刷畫矩形看起來有點奇怪,因為對於我們所介紹過的函式(如Rectangle),其邊線都是用目前畫筆繪製的。FrameRect允許使用者畫一個不一定為純色的矩形框。該邊界框為一個邏輯單位元寬。如果邏輯單位大於裝置單位,則邊界框將會為2個圖素寬或者更寬。
InvertRect將矩形中所有圖素翻轉,1轉換成0,0轉換為1,該函式將白色區域轉變成黑色,黑色區域轉變為白色,綠色區域轉變成洋紅色。
Windows還提供了9個函式,使您可以更容易、更清楚地操作RECT結構。例如,要將RECT結構的四個欄位設定為特定值,通常使用如下的程式段:
rect.left = xLeft ;
rect.top = xTop ;
rect.right = xRight ;
rect.bottom = xBottom ;
但是,通過呼叫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) ;
大多數情況下,與這些函式相同作用的程式碼很簡單。例如,您可以用下列敘述來替代CopyRect函式呼叫:
DestRect = SrcRect ;

相關詞條

熱門詞條

聯絡我們