RECT類
句法
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
結構
rect結構定義了一個矩形框左上角以及右下角的坐標。
typedef struct _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:定義畫布上顯示文字的顏色。
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;