国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
關(guān)于CRect類的一點知識
經(jīng)??吹紺Rect類的使用,不過不是很熟,在MSDN找了下關(guān)于它的介紹:

[From MSDN]

CRect類(矩形類)
無基類
【說 明】CRect類與Windows系統(tǒng)中表示矩形RECT結(jié)構(gòu)相似,并且它還提供了操作RECT結(jié)構(gòu)的成員函數(shù)。
在傳遞LPRECT,LPCRECT或RECT結(jié)構(gòu)作為參數(shù)的任何地方,都可以傳遞CRect類的對象。
注意,這個類是從tagRECT結(jié)構(gòu)派生而來的。(tagRECT是RECT結(jié)構(gòu)的不太常用的別名。)這意味著RECT結(jié)構(gòu)的數(shù)據(jù)成員(left、top、right和bottom)也是CRect類的對象可以訪問數(shù)據(jù)成員。
一個CRect類的對象包含用于定義矩形的左上角和右下角點的成員變量。當指定一個CRect類的對象時,必須謹慎地構(gòu)造它,以使它符合規(guī)范 也就是說,使其左坐標值小于右坐標值,使頂坐標值小于底坐標值。例如,左上角為(10,10),右下角為(20,20)就定義了一個符合規(guī)范的矩形,但是左上角為(20,20)而右下角為(10,10)的值就定義了一個不符合規(guī)范的矩形。如果矩形是不符合規(guī)范的,則CRect類的對象的許多成員函數(shù)都會符合不正確的結(jié)果。(參見CRect::NormalizeRect可以得到這些函數(shù)的列表。)在你調(diào)用一個要求符合規(guī)范的矩形的函數(shù)之前,你可以通過調(diào)用NormalizeRect函數(shù)來使不符合規(guī)范的矩形成為符合規(guī)范的矩形。
當用成員函數(shù)CDC::DPtoLP和CDC::LPtoDP來處理CRect類的對象時要小心。如果顯示環(huán)境的映射模式y(tǒng)-extent是負的,就像在MM_LOENGLISH中一樣,則CDC::DPtoLP將轉(zhuǎn)換CRect類的對象,以使它的頂部坐標大于底部坐標。然后像Height和Size這樣的函數(shù)將返回負值作為轉(zhuǎn)換后的矩形的高度,則此矩形將是不符合規(guī)范的。
當使用重載的CRect類的操作符時,第一個操作數(shù)必須是一個CRect;第二個操作數(shù)可以是一個RECT結(jié)構(gòu)或一個CRect類的對象。
【庫 名】<afxwin.h>
【成員函數(shù)】
(1)CPoint& BottomRight();
const CPoint& BottomRight() const;
【返回值】返回矩形的右下角點的坐標。
【注 釋】返回的右下角坐標是一個指向CPoint類的對象的引用,該對象包含在CRect類的對象中??梢允褂眠@個函數(shù)來獲取或設(shè)置矩形的右下角坐標。要用這個函數(shù)來設(shè)置右下角??梢詫⒋撕瘮?shù)放在賦值操作符的左邊。
(2)CPoint CenterPoint() const;
【返回值】返回一個CPoint類的對象,該對象是CRect類的對象的中心點。
【注 釋】要計算CRect類的對象的中心點,將其左、右坐標值相加再除2,將其上、下值相加再除2。
(3)void CopyRect(LPCRECT lpSrcRect);
【參 數(shù)】
lpSrcRect
指向要拷貝的RECT結(jié)構(gòu)或CRect類的對象的指針。
【注 釋】此成員函數(shù)用來將參數(shù)lpSrcRect指定的矩形拷貝到CRect類的對象中。
(4)CRect();
CRect(int l, int t, int r, int b);
CRect(const RECT& srcRect);
CRect(LPCRECT lpSrcRect);
CRect(POINT point, SIZE size);
CRect(POINT topLeft, POINT bottomRight);
【參 數(shù)】
l
指定CRect類的對象的左邊位置。
t
指定CRect類的對象的頂端位置。
r
指定CRect類的對象的右邊位置。
b
指定CRect類的對象的底邊位置。
srcRect
對指定的CRect類的對象的坐標的RECT結(jié)構(gòu)的引用。
lpsrcRect
指向給定的CRect類的對象的坐標的RECT結(jié)構(gòu)。
point
指定要構(gòu)造的矩形的左上角的坐標。
size
指定要構(gòu)造的矩形的寬度和高度。
topLeft
指定CRect類的對象的左上角位置。
bottomRight
指定CRect類的對象的右下角位置。
【注 釋】此成員函數(shù)用來構(gòu)造一個CRect類的對象。如果沒有給出參數(shù),則不初始化left、top、right和bottom成員。CRect(const RECT&)和CRect(LPRECT)構(gòu)造函數(shù)實際上是調(diào)用成員函數(shù)CopyRect。其它的構(gòu)造函數(shù)直接初始化對象的成員變量。
(5)void DeflateRect(int x, int y);
void DeflateRect(SIZE size);
void DeflateRect(LPCRECT lpRect);
void DeflateRect(int l, int t, int r, int b);
【參 數(shù)】
x
指定CRect類的對象的水平方向的修改量。
y
指定CRect類的對象的垂直方向的修改量。
size
一個SIZE結(jié)構(gòu)類型的數(shù)據(jù)或CSize類的對象。CRect類的對象的水平和垂直方向的修改量由本參數(shù)的cx,cy兩個數(shù)據(jù)成員決定。
lpRect
指向一個SIZE結(jié)構(gòu)類型的數(shù)據(jù)或CSize類的對象的指針,指定每一邊長度的修改量。
l
指定CRect類的對象的左邊長度的修改量。
t
指定CRect類的對象的頂端長度的修改量。
r
指定CRect類的對象的右邊長度的修改量。
b
指定CRect類的對象的底邊長度的修改量。
【注 釋】本成員函數(shù)通過將CRect類的對象的四邊向其中心移動來縮小它。為了做到這一點,本成員函數(shù)將修改量增加到矩形的左邊和上邊,而從右邊和下邊減去修改量。本成員函數(shù)的參數(shù)是有符號的值;正值縮小CRect類的對象,而負值則放大它。前兩個重載函數(shù)使CRect類的對象的相對的兩對邊都縮小移動相同的距離,因此CRect類的對象的總寬度減小了兩倍于參數(shù)x(或參數(shù)cx)指定的值,總高度也減小了兩倍于參數(shù)y(或cy)。其它兩個重載函數(shù)使CRect的邊相對獨立的縮小。
(6)BOOL EqualRect(LPCRECT lpRect) const;
【返回值】如果兩個矩形具有相同的矩形坐標值,則返回非零值;否則返回0。
注意,兩個矩形都必須是符合規(guī)范的,否則此函數(shù)將失敗。你可以在調(diào)用此函數(shù)之前,調(diào)用成員函數(shù)NormalizeRect來使矩形規(guī)范化。
【參 數(shù)】
lpRect
一個指向RECT結(jié)構(gòu)類型數(shù)據(jù)或CRect類的對象的指針,該對象或結(jié)構(gòu)包含了一個矩形的左上角和右下角的坐標。
(7)int Height() const;
【返回值】返回CRect類的對象的高度。
【注 釋】此成員函數(shù)通過從CRect類的對象的底邊坐標值中減去頂端坐標值來計算CRect類的對象的高度。結(jié)果值可以是負數(shù)。
(8)void InflateRect(int x, int y);
void InflateRect(SIZE size);
void InflateRect(LPCRECT lpRect);
void InflateRect(int l, int t, int r, int b);
【參 數(shù)】
x
指定CRect類的對象的水平方向的修改量。
y
指定CRect類的對象的垂直方向的修改量。
size
一個SIZE結(jié)構(gòu)類型的數(shù)據(jù)或CSize類的對象。CRect類的對象的水平和垂直方向的修改量由本參數(shù)的cx,cy兩個數(shù)據(jù)成員決定。
lpRect
指向一個SIZE結(jié)構(gòu)類型的數(shù)據(jù)或CSize類的對象的指針,指定每一邊長度的修改量。
l
指定CRect類的對象的左邊長度的修改量。
t
指定CRect類的對象的頂端長度的修改量。
r
指定CRect類的對象的右邊長度的修改量。
b
指定CRect類的對象的底邊長度的修改量。
【注 釋】本成員函數(shù)通過將CRect類的對象的四邊遠離中心來擴大它。為了做到這一點,本成員函數(shù)將修改量增加到矩形的右邊和下邊,而從左邊和上邊減去修改量。本成員函數(shù)的參數(shù)是有符號的值;正值放大CRect類的對象,而負值則縮小它。前兩個重載函數(shù)使CRect類的對象的相對的兩對邊都擴大相同的距離,因此CRect類的對象的總寬度擴大了兩倍于參數(shù)x(或參數(shù)cx)指定的值,總高度也擴大了兩倍于參數(shù)y(或cy)。其它兩個重載函數(shù)使CRect的邊相對獨立的擴大。
(9)BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2);
【返回值】如果兩個矩形相交為一個非空矩形(矩形存在,而且面積為正),則返回非零值;否則返回0。
【參 數(shù)】
lpRect1
一個指向RECT結(jié)構(gòu)類型數(shù)據(jù)或CRect類的對象的指針,該對象或結(jié)構(gòu)包含了一個源矩形。
lpRect2
一個指向RECT結(jié)構(gòu)類型數(shù)據(jù)或CRect類的對象的指針,該對象或結(jié)構(gòu)包含了一個源矩形。
【注 釋】此函數(shù)使CRect類的對象等于兩個現(xiàn)有矩形相交得到的矩形。注意,兩個矩形都必須是符合規(guī)范的,否則此函數(shù)將失敗。你可以在調(diào)用此函數(shù)之前,調(diào)用成員函數(shù)NormalizeRect來使矩形規(guī)范化。
(10)BOOL IsRectEmpty() const;
【返回值】如果CRect類的對象是符合規(guī)范的而且面積為正則返回非零值;否則返回0。
【注 釋】此成員函數(shù)用來確定CRect類的對象是否是空的。如果一個矩形的寬度和(/或)高度是0或負值,則稱這個矩形為空的。與成員函數(shù)IsRectNull不同,成員函數(shù)IsRectNull用來確定是否矩形的所有坐標都是零。注意,這個矩形必須是符合規(guī)范的,否則本成員函數(shù)將失敗。你可以在調(diào)用本成員函數(shù)之前,調(diào)用成員函數(shù)NormalizeRect來使矩形規(guī)范化。
(11)BOOL IsRectNull() const;
【返回值】如果CRect類的對象的上、左、下和右坐標值都等于0,則返回非零值;否則返回0。
(12)void NormalizeRect();
【注 釋】本成員函數(shù)用來使CRect類的對象符合規(guī)范,使其高度和寬度均為正值。Windows系統(tǒng)通常使用四個象限的坐標系,因此矩形需要在四個象限被規(guī)范化。本成員函數(shù)比較上、下坐標的值,如果上坐標值大于下坐標的值,則將它們互換。類似的,如果左坐標的值大于右坐標的值,則將左、右坐標互換。當處理不同的映射模式和轉(zhuǎn)化的矩形時,本成員函數(shù)是很有用的。
注意,下面的CRect類的成員函數(shù)為了正確地工作,需要規(guī)范化的矩形,它們是:成員函數(shù)Height、Width、Size、IsRectEmpty、PtInRect、EqualRect、UnionRect、IntersectRect、SubtractRect、operator ==、operator !=、operator |、operator |=、operator &和operator &=。
(13)void OffsetRect(int x, int y);
void OffsetRect(POINT point);
void OffsetRect(SIZE size);
【參 數(shù)】
x
指定要往左或右移動的數(shù)量。要往左時此值必須是負值。
y
指定要往上或下移動的數(shù)量。要往上時此值必須是負值。
point
包含一個POINT結(jié)構(gòu)類型的數(shù)據(jù)或CPoint類的對象,該結(jié)構(gòu)或?qū)ο笾付艘苿拥某叽纭?br>size
包含一個SIZE結(jié)構(gòu)類型的數(shù)據(jù)或CSize類的對象,指定要移動的尺寸。
【注 釋】本成員函數(shù)用來將CRect類的對象移動指定的偏移量。將CRect類的對象沿x軸移動x個單位,沿y軸移動y個單位。參數(shù)x和y都是有符號的值,因此CRect類的對象可以向左或向右,向上或向下移動。
(14)BOOL PtInRect(POINT point) const;
【返回值】如果點位于CRect類的對象中,則返回非零值;否則返回0。
【參 數(shù)】
point
包含一個POINT結(jié)構(gòu)類型的數(shù)據(jù)或CPoint類的對象。
【注 釋】本成員函數(shù)用來確定一個指定的點是否在CRect類的對象內(nèi)。如果這個點在CRect類的對象的左邊和上邊上,或在四個邊之內(nèi),則稱此點在CRect類的對象之內(nèi)。點在CRect類的對象的右邊或底邊上,則稱點在CRect外。注意,這個矩形必須是符合規(guī)范的。
(15)void SetRect(int x1, int y1, int x2, int y2);
【參 數(shù)】
x1
指定左上角的x坐標。
y1
指定左上角的y坐標。
x2
指定右下角的x坐標。
y2
指定右下角的y坐標。
【注 釋】本成員函數(shù)將CRect類的對象的各個坐標設(shè)置為指定的坐標值。
(16)void SetRectEmpty();
【注 釋】本成員函數(shù)通過將CRect類的對象的所有坐標設(shè)置為零來使CRect類的對象成為一個空矩形。
(17)CSize Size() const;
【返回值】返回一個包含CRect類的對象的尺寸的CSize類的對象。
【注 釋】返回值的成員屬性cx和cy包含了CRect類的對象的高度和寬度。高度和寬度都可以是負值。
(18)BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2);
【返回值】如果函數(shù)成功則返回非零值;否則返回0。
【參 數(shù)】
lpRectSrc1
指向一個RECT結(jié)構(gòu)類型數(shù)據(jù)或CRect類的對象,將從這個結(jié)構(gòu)或?qū)ο笾袦p去某個矩形。
lpRectSrc2
指向一個RECT結(jié)構(gòu)類型數(shù)據(jù)或CRect類的對象,將從由參數(shù)lpRectSrc1指定的矩形中減去這個結(jié)構(gòu)或?qū)ο蟆?br>【注 釋】本成員函數(shù)使一個CRect類的對象的尺寸等于從參數(shù)lpRectSrc1中減去參數(shù)lpRectSrc2的差,這個CRect類的對象包含在參數(shù)lpRectScr1指定的矩形內(nèi),而且不在參數(shù)lpRectScr2指定的矩形內(nèi)。
參數(shù)lpRectSrc1中減去參數(shù)lpRectSrc2所得到的圖形必須是一個矩形,否則CRect類的對象將為參數(shù)lpRectSrc1所指定的矩形。
例如:如果lpRectScr1是(10, 10, 100, 100),lpRectScr2是(50, 50, 150, 150)則本成員函數(shù)將參數(shù)lpRectScr1指定的矩形坐標賦給CRect類的對象。如果lpRectScr1是(10, 10, 100, 100),lpRectScr2是(50, 0, 150, 150)則本成員函數(shù)返回的矩形坐標為(10, 10, 50, 100)。
注意:這兩個矩形都應(yīng)該是符合規(guī)范的,否則本成員函數(shù)總將參數(shù)lpRectScr1指定的矩形坐標賦給CRect類的對象
(19)CPoint& TopLeft();
const CPoint& TopLeft() const;
【返回值】返回矩形的左上角坐標。
【注 釋】本成員函數(shù)返回的坐標是一個對CPoint類的對象的引用,該對象包含在CRect類的對象中。你可以使用本成員函數(shù)來獲取或設(shè)置矩形的左上角。通過在賦值操作符的左邊使用本成員函數(shù),可以設(shè)置矩形的左上角。
(20)BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2);
【返回值】如果CRect類的對象為一個規(guī)范化的矩形,則返回非零值;否則,返回0。
【參 數(shù)】
lpRect1
指向一個RECT類型數(shù)據(jù)或CRect類的對象,包含了一個源矩形。
lpRect2
指向一個RECT類型數(shù)據(jù)或CRect類的對象,包含了一個源矩形。
【注 釋】本成員函數(shù)將包含兩個源矩形的最小矩形的坐標賦給CRect類的對象。注意,這兩個源矩形必須至少有一個是符合規(guī)范的,否則本成員函數(shù)將返回0。當其中一個參數(shù)指定的源矩形是符合規(guī)范的,而另一個不是,則本成員函數(shù)將符合規(guī)范的矩形的坐標賦給CRect類的對象。
(21)int Width() const;
【返回值】返回CRect類的對象的寬度。
【注 釋】本成員函數(shù)用右坐標值減去左坐標值,來計算CRect類的對象的寬度。這個寬度可以是負值。
【操 作 符】
(1)operator LPCRECT() const
【注 釋】本操作符將一個CRect類的對象轉(zhuǎn)化為一個LPCRECT類型的數(shù)據(jù)。當使用本操作符時,不需要使用地址操作符(&)。當你傳遞一個CRect類的對象給一個需要LPCRECT類型的數(shù)據(jù)作為參數(shù)的函數(shù)時,本操作符被自動使用。
(2)operator LPRECT()
【注 釋】本操作符將一個CRect類的對象轉(zhuǎn)化為一個LPRECT類型的數(shù)據(jù)。當使用本操作符時,不需要使用地址操作符(&)。當你傳遞一個CRect類的對象給一個需要LPRECT類型的數(shù)據(jù)作為參數(shù)的函數(shù)時,本操作符被自動使用。
(3)void operator = (const RECT& srcRect);
【注 釋】本操作符將參數(shù)srcRect指定的矩形分配給CRect類的對象。
(4)BOOL operator == (const RECT& rect) const;
【注 釋】本操作符通過比較參數(shù)rect指定的矩形與CRect類的對象,左上角和右下角的坐標值來確定它們是否相等。若相等返回TRUE否則返回FALSE。注意,這兩個矩形都必須是符合規(guī)范的,否則本操作符將總是返回FALSE。你可以在調(diào)用本操作符之前,調(diào)用成員函數(shù)NormalizeRect來使矩形規(guī)范化。
(5)BOOL operator != (const RECT& rect) const;
【注 釋】本操作符通過比較參數(shù)rect指定的矩形與CRect類的對象,左上角和右下角的坐標值來確定它們是否不相等。若不相等返回TRUE否則返回FALSE。注意,這兩個矩形都必須是符合規(guī)范的,否則本操作符將總是返回TRUE。你可以在調(diào)用本操作符之前,調(diào)用成員函數(shù)NormalizeRect來使矩形規(guī)范化。

(6)CRect operator + (POINT point) const;
CRect operator + (SIZE size) const;
CRect operator + (LPCRECT lpRect) const;
【注 釋】前兩種重載形式是CRect類的對象移動指定偏移距離后的得到的矩形。參數(shù)的x和y(或cx和cy)被增加到新的CRect類的對象的對應(yīng)坐標上。CRect類的對象的所指定的矩形大小不發(fā)生變化。
第三種重載形式相當于成員函數(shù)DeflateRect,本操作符通過將CRect類的對象的四邊向其中心移動來擴大它。參見成員函數(shù)DeflateRect的說明。
(7)CRect operator - ( POINT point) const;
CRect operator - (SIZE size) const;
CRect operator - (LPCRECT lpRect) const;
【注 釋】前兩種重載形式是CRect類的對象移動指定偏移距離后的得到的矩形。參數(shù)的x和y(或cx和cy)被從新的CRect類的對象的對應(yīng)坐標上減去。CRect類的對象的所指定的矩形大小不發(fā)生變化。
第三種重載形式相當于成員函數(shù)DeflateRect,本操作符通過將CRect類的對象的四邊向其中心移動來縮小它。參見成員函數(shù)DeflateRect的說明。
(8)CRect operator & (const RECT& rect2) const;
【注 釋】本操作符返回一個新的CRect類的對象,它是CRect類的對象和參數(shù)rect2所指定的矩形相交所得的矩形。
(9)CRect operator | (const RECT& rect2) const;
【注 釋】本操作符返回一個新的CRect類的對象,它是CRect類的對象和參數(shù)rect2所指定的矩形相并所得的矩形。本操作符相當于成員函數(shù)UnionRect。
(10)void operator += (POINT point);
void operator += (SIZE size);
void operator += (LPCRECT lpRect);
【注 釋】前兩種重載形式是CRect類的對象移動指定偏移距離后的得到的矩形。參數(shù)的x和y(或cx和cy)被增加到CRect類的對象的對應(yīng)坐標上。CRect類的對象的所指定的矩形大小不發(fā)生變化。
第三種重載形式相當于成員函數(shù)DeflateRect,本操作符通過將CRect類的對象的四邊向其中心移動來擴大它。參見成員函數(shù)DeflateRect的說明。
(11)void operator -= (POINT point);
void operator -= (SIZE size);
void operator -= (LPCRECT lpRect);
【注 釋】前兩種重載形式是CRect類的對象移動指定偏移距離后的得到的矩形。參數(shù)的x和y(或cx和cy)被從CRect類的對象的對應(yīng)坐標上減去。CRect類的對象的所指定的矩形大小不發(fā)生變化。
第三種重載形式相當于成員函數(shù)DeflateRect,本操作符通過將CRect類的對象的四邊向其中心移動來縮小它。參見成員函數(shù)DeflateRect的說明。
(12)void operator &= (const RECT& rect);
【注 釋】本操作符返回CRect類的對象與參數(shù)rect2所指定的矩形相交所得的矩形。
(13)void operator |= (const RECT& rect);
【注 釋】本操作符返回CRect類的對象與參數(shù)rect2所指定的矩形相并所得的矩形。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MFC常用類、成員函數(shù)、數(shù)組類、Cstring類、CTime類、CPoint類
VC畫圖-2
MFC繪圖總結(jié)(4):畫圖 | 求索閣
用VC 實現(xiàn)不規(guī)則窗口
MFC中常用類,宏,函數(shù)介紹
MFC中CDC的使用?繪圖
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服