RECT

RECT

rect這個對象是用來存儲成對出現的參數,比如,一個矩形框的左上角坐標、寬度和高度,RECT結構通常用於Windows編程。


句法

class Rect

成員表

構造函數描述
Rect::Rect()創建一個矩形對象,矩形左上角的橫坐標、縱坐標以及矩形的寬度、高度均為零。這是默認的構造函數
Rect::Rect(point&,size&)創建一個矩形對象,用Point對象來初始化矩形左上角的橫坐標和縱坐標,用size對象來初始化矩形的寬度和高度(Size(width,height)不要弄反)
Rect::Rect(INT,INT,INT,INT)創建一個矩形對象,通過使用四個整數來初始化矩形左上角的橫坐標、縱坐標以及右下角的橫坐標、縱坐標(不要弄反)(cocos2d中的rect參數是(x,y,width,height),第三第四個參數分別是矩形的寬和高)
類成員函數描述
Rect::Clone該函數用來創建一個與當前矩形對象相同的矩形對象
Rect::contains(point&)該函數用來決定該點是否在此矩形框內
Rect::contains(rect&)該函數用來決定另一個矩形框是否在這個矩形框內
Rect::contains(INT,INT)該函數用來決定點(x,y)是否在此矩形框內
Rect::equals該函數用來判定量矩形對象是否相等
Rect::getbottom該函數用來獲取矩形框底部邊緣的y值
Rect::getbounds該函數用來為這個矩形框創建一個副本
Rect::getleft該函數用來獲取矩形框左邊緣的x值
Rect::getlocation該函數用來獲取矩形框左上角的坐標
Rect::getright該函數用來獲取矩形框右邊緣的x值
Rect::getsize該函數用來獲取矩形框的寬度和高度
Rect::gettop該函數用來獲取矩形框上邊緣的y值
Rect::inflate(INT,INT)該函數通過dx在左右邊框上擴大該矩形框,通過dy在上下邊框上擴大該矩形框
Rect::inflate(point&)該函數通過point.x的值在左右邊框上來擴大該矩形框,通過point.y的值在上下邊框上來擴大該矩形框
Rect::intsect(rects&;rects&;rects&)該函數用來確定兩個矩形框的交集,並將這一結果儲存在一個rect對象中
Rect::intsect(rects&)該函數用來將此矩形框與另一矩形框的交集來替換這一矩形框
Rect::intersectwith該函數用來判斷該矩形框是否與另一個矩形框相交
Rect::isemptyarea該函數用來該矩形框是否為空
Rect::offset(INT,INT)該函數用來移動此矩形框,通過水平的移動dx距離,以及垂直移動dy距離
Rect::offset(point&)該函數用來水平地移動該矩形框point.x距離,以及垂直地移動該矩形框point.y距離
Rect::union該函數用來決定兩個矩形的合併,並將結果保存在一個rect對象中

簡介


結構

rect結構定義了一個矩形框左上角以及右下角的坐標。
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT;

成員

left :指定矩形框左上角的x坐標
top:指定矩形框左上角的y坐標
right:指定矩形框右下角的x坐標
bottom:指定矩形框右下角的y坐標
備註:
當rect傳遞給fillrect函數時,該矩形框將被填充滿,但不包括右欄和底行的像素。
該結構與rectl結構是同一結構。

特點

----RECT既是個特別的數據結構,又是個函數,他的作用就是定義一個矩形區域對象,而作為函數使用時他能用兩個屬性(Tpiont型)指明區域範圍,同時也可分解成四個單一的變數類型(Integer型),即:
topleft:左上角坐標(Tpiont型變數);
bottomright:右下角坐標(Tpiont型變數);
topleft.x或left:左上角橫坐標;
topleft.y或top:左上角縱坐標;
bottomright.x或right:右下角橫坐標;
bottomright.y或bottom:右下角縱坐標。
----例如,下面三種方法定義一個相同的RECT變數:
Rect(10,10,110,210);
topleft:=Piont(10,10);
bottomright:=Point(110,210);
left:=10;top:=10;right:=110;Bottom:=210;
----下面的代碼在Form1窗體上定義一個RECT矩形並用紅色填充:
var
NewRect: TRect;
begin
NewRect := Rect(20, 30, 50, 90);
Form1.Canvas.Brush.Color := clRed;
Form1.Canvas.FillRect(NewRect);
end;
----從上面能看出,RECT只是個通用變數,他並不屬於所有控制項本身,定義之後可由所有具有CANVAS屬性的控制項使用,以指明某控制項表面的一個矩形區域,並且程式運行過程中可隨意修改尺寸和位置。

操作命令

Rect(x1,y1,x2,y2):定義Rect區域範圍。
FillRect(rect:Trect):用填充色填充Rect區域。
FloodFill:用填充色填充Rect之外區域。
textrect(Rect:TRect;X,Y:Integer;constText:string):在Rect對象中顯示文本,其中的X、Y為顯示文本的坐標值,是相對於畫布的坐標而不是相對於RECT的坐標;const為顯示的字元個數;string為待顯示的字元串,只有在RECT內的字元才能顯示出來,超出部分不顯示。
stretchdraw(constRect:TRect;Graphic:TGraphic):把圖像文件填充到Rect之中,並且圖像按RECT的尺寸自動伸縮,其中的Graphic可為BMP或ICO等圖像資源。
font.size:定義畫布上顯示文字的尺寸。
font.color:定義畫布上顯示文字的顏色。
textwidth:返回字元串的長度。
textheight:返回字元串的高度。
Brush.Color:定義畫布的填充顏色。
Copyrect(Dest:TRect;Canvas:Tcanvas;Source:TRect):把圖像從一個矩形中拷到另一個矩形之中,並且按目標矩形尺寸自動伸縮,其中,Dest為目標畫布矩形,Canvas為源畫布,Source為源矩形。
----由於上述命令均是基於畫布本身使用的,所以具體使用時必須加上控制項及畫面屬性,例如下面的代碼:
var
TheRect: TRect;
begin
TheRect.Top := 10;
TheRect.Left := 10;
TheRect.Bottom := 100;
TheRect.Right := 100;
Form1.Canvas.TextRect(TheRect,0,0,’’Hello,
world!’’);
end;