面三個繪圖函式需要一個指向矩形結構的指標:
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) ;
面三個繪圖函式需要一個指向矩形結構的指標:
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) ;