Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Hasonló a Windows-struktúrához RECT .
Szemantika
class CRect : public tagRECT
Tagok
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
CRect::CRect |
Egy CRect objektumot hoz létre. |
Nyilvános metódusok
| Név | Leírás |
|---|---|
CRect::BottomRight |
A jobb alsó pontját CRectadja vissza. |
CRect::CenterPoint |
A középpontját CRectadja vissza. |
CRect::CopyRect |
Másolja a forrás téglalap méreteit a következőre CRect: . |
CRect::DeflateRect |
Csökkenti a szélességet és a magasságot CRect. |
CRect::EqualRect |
Meghatározza, hogy egyenlő-e CRect a megadott téglalappal. |
CRect::Height |
Kiszámítja a magasságot CRect. |
CRect::InflateRect |
Növeli a szélességet és a magasságot CRect. |
CRect::IntersectRect |
Két téglalap metszetével egyenlő halmaz CRect . |
CRect::IsRectEmpty |
Meghatározza, hogy üres-e CRect .
CRect üres, ha a szélesség és/vagy a magasság 0. |
CRect::IsRectNull |
Meghatározza, hogy a top, bottom, left, és right tag változók mind egyenlőek-e 0-nak. |
CRect::MoveToX |
Ugrás CRect a megadott x koordinátára. |
CRect::MoveToXY |
Ugrás CRect a megadott x és y koordinátákra. |
CRect::MoveToY |
Ugrás CRect a megadott y koordinátára. |
CRect::NormalizeRect |
Szabványosítja a magasságot és a szélességet CRect. |
CRect::OffsetRect |
A megadott eltolások szerint mozog CRect . |
CRect::PtInRect |
Meghatározza, hogy a megadott pont belül van-e CRect. |
CRect::SetRect |
A dimenzióit állítja CRectbe. |
CRect::SetRectEmpty |
Üres téglalapra van adva CRect (az összes koordináta értéke 0). |
CRect::Size |
Kiszámítja a méretet CRect. |
CRect::SubtractRect |
Kivon egy téglalapot a másikból. |
CRect::TopLeft |
A bal felső pontot CRectadja vissza. |
CRect::UnionRect |
Két téglalap összevonásával egyenlő halmazok CRect . |
CRect::Width |
Kiszámítja a szélességét CRect. |
Nyilvános operátorok
| Név | Leírás |
|---|---|
CRect::operator - |
Kivonja a megadott eltolásokat a megadott eltolásokból CRect vagy deflatesekből CRect , és visszaadja az eredményül kapott CRectértéket. |
CRect::operator LPCRECT |
Átalakítja az a-t CRect egy LPCRECT. |
CRect::operator LPRECT |
Átalakítja az a-t CRect egy LPRECT. |
CRect::operator != |
Meghatározza, hogy nem egyenlő-e CRect téglalappal. |
CRect::operator & |
Létrehozza a téglalap és a téglalap metszetét CRect , és visszaadja az eredményül kapott CRectértéket. |
CRect::operator &= |
A metszéspont és a téglalap metszéspontjával CRect egyenlő értékeket állít beCRect. |
CRect::operator | |
Létrehozza a téglalap és a téglalap egyesítését CRect , és visszaadja az eredményül kapott CRectértéket. |
CRect::operator |= |
Egy téglalap és egy téglalap egyesítésével CRect egyenlő értékeket állít beCRect. |
CRect::operator + |
Hozzáadja a megadott eltolásokat vagy CRect felfújja CRect azokat, és visszaadja az eredményül CRectkapott értéket. |
CRect::operator += |
Hozzáadja a megadott eltolásokat vagy CRect felfújja azokat CRect. |
CRect::operator = |
Egy téglalap méretének másolása a következőre CRect: . |
CRect::operator -= |
Kivonja a megadott eltolásokat a megadott eltolásokból CRect vagy deflatesekből CRect. |
CRect::operator == |
Meghatározza, hogy egy téglalap egyenlő-e CRect . |
Megjegyzések
CRectaz objektumok és a Windows-struktúrák RECT manipulálására CRect szolgáló tagfüggvényeket is tartalmaz.
Az CRect objektumok átadhatók függvényparaméterként bárhol, ahol egy RECT struktúra, LPCRECTvagy LPRECT átadható.
Megjegyzés:
Ez az osztály a tagRECT szerkezetből származik. (A név tagRECT a struktúra kevésbé gyakran használt neveRECT.) Ez azt jelenti, hogy a struktúra adattagja (, és right) a RECTCRect.bottomtopleft
Az A CRect olyan tagváltozókat tartalmaz, amelyek egy téglalap bal felső és jobb alsó pontjait határozzák meg.
A beállításnál CRectkörültekintően kell konstruálnia, hogy normalizálva legyen – vagyis a bal koordináta értéke kisebb legyen a jobbnál, a felső pedig kisebb legyen az alsónál. A (10,10) és a jobb alsó sarok (20,20) például egy normalizált téglalapot határoz meg, de a (20,20) és a jobb alsó (10,10) bal felső része nem normalizált téglalapot határoz meg. Ha a téglalap nincs normalizálva, sok CRect tagfüggvény helytelen eredményeket adhat vissza. (A függvények listáját itt találja CRect::NormalizeRect .) Mielőtt normalizált téglalapokat igénylő függvényt hívna meg, normalizálhatja a nem normalizált téglalapokat a NormalizeRect függvény meghívásával.
A tagfüggvények és a CDC::DPtoLPCDC::LPtoDP tagfüggvények manipulálásakor CRect körültekintően kell eljárni. Ha egy megjelenítési környezet leképezési módja olyan, hogy az y-mértéke negatív, mint az , MM_LOENGLISHakkor CDC::DPtoLP átalakítja a CRect képet úgy, hogy a felső része nagyobb legyen, mint az alsó. Az olyan függvények, mint például HeightSize az átalakított CRectmagasság negatív értékeit adja vissza, a téglalap pedig nem normalizálódik.
Túlterhelt CRect operátorok használatakor az első operandusnak egy CRect; a második lehet RECT szerkezet vagy CRect objektum.
Öröklési hierarchia
tagRECT
CRect
Követelmények
fejléc:atltypes.h
CRect::BottomRight
A koordinátákat a rendszer egy CPoint olyan objektumra mutató hivatkozásként adja vissza, amely a fájlban CRecttalálható.
CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();
Visszaadott érték
A téglalap jobb alsó sarkának koordinátái.
Megjegyzések
Ezzel a függvénnyel lekérheti vagy beállíthatja a téglalap jobb alsó sarkát. Állítsa be a sarokban ezt a függvényt a hozzárendelési operátor bal oldalán.
példa
// use BottomRight() to retrieve the bottom
// right POINT
CRect rect(210, 150, 350, 900);
CPoint ptDown;
ptDown = rect.BottomRight();
// ptDown is now set to (350, 900)
ASSERT(ptDown == CPoint(350, 900));
// or, use BottomRight() to set the bottom
// right POINT
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
rect2.BottomRight() = ptLow;
// rect2 is now (10, 10, 180, 180)
ASSERT(rect2 == CRect(10, 10, 180, 180));
CRect::CenterPoint
Kiszámítja a középpontot CRect a bal és a jobb oldali értékek hozzáadásával, a kettővel való osztással, a felső és az alsó értékek hozzáadásával, valamint a kettővel való osztással.
CPoint CenterPoint() const throw();
Visszaadott érték
Egy CPoint objektum, amely a középpontja CRect.
példa
// Code from this OnPaint() implementation can be pasted into your own application
// to draw lines that would look like a letter "Y" within your dialog.
void CMyDlg::OnPaint()
{
CPaintDC dc(this);
// device context for painting
// get the size and position of the client area of
// your window
CRect rect;
GetClientRect(&rect);
// Move the current pen to the top left of the window. We call the
// TopLeft() member of CRect here and it returns a CPoint object we
// pass to the override of CDC::MoveTo() that accepts a CPoint.
dc.MoveTo(rect.TopLeft());
// Draw a line from the top left to the center of the window.
// CenterPoint() gives us the middle point of the window as a
// CPoint, and since CDC::LineTo() has an override that accepts a
// CPoint, we can just pass it along.
dc.LineTo(rect.CenterPoint());
// Now, draw a line to the top right of the window. There's no
// CRect member which returns a CPoint for the top right of the
// window, so we'll reference the CPoint members directly and call
// the CDC::LineTo() override which takes two integers.
dc.LineTo(rect.right, rect.top);
// The top part of the "Y" is drawn. Now, we'll draw the stem. We
// start from the center point.
dc.MoveTo(rect.CenterPoint());
// and then draw to the middle of the bottom edge of the window.
// We'll get the x-coordinate from the x member of the CPOINT
// returned by CenterPoint(), and the y value comes directly from
// the rect.
dc.LineTo(rect.CenterPoint().x, rect.bottom);
}
CRect::CopyRect
Másolja a téglalapot a lpSrcRect következőbe CRect: .
void CopyRect(LPCRECT lpSrcRect) throw();
Paraméterek
lpSrcRect
RECT A másolandó szerkezetre vagy CRect objektumra mutat.
példa
CRect rectSource(35, 10, 125, 10);
CRect rectDest;
rectDest.CopyRect(&rectSource);
// rectDest is now set to (35, 10, 125, 10)
RECT rectSource2;
rectSource2.left = 0;
rectSource2.top = 0;
rectSource2.bottom = 480;
rectSource2.right = 640;
rectDest.CopyRect(&rectSource2);
// works against RECT structures, too!
// rectDest is now set to (0, 0, 640, 480)
CRect::CRect
Egy CRect objektumot hoz létre.
CRect() throw();
CRect(int l, int t, int r, int b) throw();
CRect(const RECT& srcRect) throw();
CRect(LPCRECT lpSrcRect) throw();
CRect(POINT point, SIZE size) throw();
CRect(POINT topLeft, POINT bottomRight) throw();
Paraméterek
l
A bal oldali pozíciót CRectadja meg.
t
Megadja a felső elemet CRect.
r
A megfelelő pozíciót CRectadja meg.
b
A alját CRectadja meg.
srcRect
A szerkezetre hivatkozik a RECT következő koordinátákkal CRect: .
lpSrcRect
A szerkezetre mutat a RECT következő koordinátákkal CRect: .
point
Megadja a létrehozandó téglalap forráspontját. A bal felső saroknak felel meg.
size
A létrehozandó téglalap bal felső sarkától a jobb alsó sarokig történő elmozdulást adja meg.
topLeft
A bal felső pozíciót CRectadja meg.
bottomRight
A jobb alsó sarkában lévő pozíciót CRectadja meg.
Megjegyzések
Ha nem ad meg argumentumokat, lefttoprightbottom akkor a tagok értéke 0.
A CRect(const RECT&) és CRect(LPCRECT) konstruktorok végrehajtanak egy CopyRect. A többi konstruktor közvetlenül inicializálja az objektum tagváltozóit.
példa
// default constructor is equivalent to CRect(0, 0, 0, 0)
CRect emptyRect;
// four-integers are left, top, right, and bottom
CRect rect(0, 0, 100, 50);
ASSERT(rect.Width() == 100);
ASSERT(rect.Height() == 50);
// Initialize from RECT structure
RECT sdkRect;
sdkRect.left = 0;
sdkRect.top = 0;
sdkRect.right = 100;
sdkRect.bottom = 50;
CRect rect2(sdkRect);
// by reference
CRect rect3(&sdkRect);
// by address
ASSERT(rect2 == rect);
ASSERT(rect3 == rect);
// from a point and a size
CPoint pt(0, 0);
CSize sz(100, 50);
CRect rect4(pt, sz);
ASSERT(rect4 == rect2);
// from two points
CPoint ptBottomRight(100, 50);
CRect rect5(pt, ptBottomRight);
ASSERT(rect5 == rect4);
CRect::DeflateRect
DeflateRect lefedi CRect az oldalait a középpontja felé mozgatva.
void DeflateRect(int x, int y) throw();
void DeflateRect(SIZE size) throw();
void DeflateRect(LPCRECT lpRect) throw();
void DeflateRect(int l, int t, int r, int b) throw();
Paraméterek
x
Megadja, hogy hány egység legyen deflálva a bal és a jobb oldalon CRect.
y
Megadja, hogy hány egység legyen deflálva a lista tetején és alján CRect.
size
A SIZE vagy CSize amely megadja a deflálni CRectkívánt egységek számát. Az cx érték a bal és a jobb oldali oldal deflálásához tartozó egységek számát adja meg, az cy érték pedig a felül és alul lévő egységek számát határozza meg.
lpRect
Egy szerkezetre RECT mutat, vagy CRect megadja az egyes oldalokat deflálandó egységek számát.
l
Megadja, hogy hány egység legyen deflálva a bal oldalon CRect.
t
Megadja, hogy hány egység legyen deflálva a lista tetején CRect.
r
Megadja, hogy hány egység legyen deflálva a jobb oldalon CRect.
b
Megadja az aljára CRectdeflálandó egységek számát.
Megjegyzések
Ehhez hozzáadja az egységeket a bal és a felső részhez, DeflateRect és kivonja az egységeket jobbról és alulról. A paraméterek DeflateRect aláírt értékek; a pozitív értékek deflálnak CRect , a negatív értékek pedig felfújják.
Az első két túlterhelés mindkét ellentétes oldalpárját CRect eltéríti, így a teljes szélessége kétszer x (vagy cx) csökken, és a teljes magassága kétszer y (vagy cy) csökken. A másik két túlterhelés egymástól függetlenül deflál CRect .
példa
CRect rect(10, 10, 50, 50);
rect.DeflateRect(1, 2);
ASSERT(rect.left == 11 && rect.right == 49);
ASSERT(rect.top == 12 && rect.bottom == 48);
CRect rect2(10, 10, 50, 50);
CRect rectDeflate(1, 2, 3, 4);
rect2.DeflateRect(&rectDeflate);
ASSERT(rect2.left == 11 && rect2.right == 47);
ASSERT(rect2.top == 12 && rect2.bottom == 46);
CRect::EqualRect
Meghatározza, hogy egyenlő-e CRect a megadott téglalappal.
BOOL EqualRect(LPCRECT lpRect) const throw();
Paraméterek
lpRect
RECT Egy téglalap bal felső és jobb alsó sarkának koordinátáit tartalmazó szerkezetre vagy CRect objektumra mutat.
Visszaadott érték
Nonzero, ha a két téglalapnak ugyanaz a felső, bal, alsó és jobb értéke van; egyéb esetben 0.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1.EqualRect(rect2));
ASSERT(!rect1.EqualRect(rect3));
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect1.EqualRect(&test));
CRect::Height
Kiszámítja a magasságot CRect úgy, hogy kivonja a felső értéket az alsó értékből.
int Height() const throw();
Visszaadott érték
A magasság.CRect
Megjegyzések
Az eredményül kapott érték negatív lehet.
Megjegyzés:
A téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalap normalizálására.
példa
CRect rect(20, 30, 80, 70);
int nHt = rect.Height();
// nHt is now 40
ASSERT(nHt == 40);
CRect::InflateRect
InflateRect úgy felfújja CRect , hogy az oldalait elmozdítja a középponttól.
void InflateRect(int x, int y) throw();
void InflateRect(SIZE size) throw();
void InflateRect(LPCRECT lpRect) throw();
void InflateRect(int l, int t, int r, int b) throw();
Paraméterek
x
Megadja, hogy hány egység legyen felfújva a bal és a jobb oldalon CRect.
y
Megadja azoknak a egységeknek a számát, amelyeket a felső és az alsó CRectrészre kell felfújni.
size
A SIZE vagy CSize amely megadja a felfújandó CRectegységek számát. Az cx érték a bal és a jobb oldalt felfújni kívánt egységek számát adja meg, az cy érték pedig a felül és alul felfújandó egységek számát határozza meg.
lpRect
Egy struktúrára RECT mutat, vagy CRect megadja az egyes oldalokat felfújó egységek számát.
l
Megadja, hogy hány egység legyen felfújva a bal oldalon CRect.
t
Megadja azoknak a egységeknek a számát, amelyeket fel szeretne fújni.CRect
r
Megadja, hogy hány egység legyen a jobb oldalon CRect.
b
Megadja azoknak az egységeknek a számát, amelyeket fel szeretne fújni.CRect
Megjegyzések
Ehhez kivonja az egységeket balról és felülről, InflateRect és hozzáadja az egységeket a jobb és alsó részhez. A paraméterek InflateRect aláírt értékek; a pozitív értékek felfúvódnak CRect , a negatív értékek pedig deflálnak.
Az első két túlterhelés mindkét ellentétes oldalpárját CRect felfújja úgy, hogy teljes szélessége kétszer x (vagy cx) növelve legyen, és teljes magassága kétszeresével y (vagy cy) növelve legyen. A másik két túlterhelés egymástól függetlenül felfújja CRect mindkét oldalt.
példa
CRect rect(0, 0, 300, 300);
rect.InflateRect(50, 200);
// rect is now (-50, -200, 350, 500)
ASSERT(rect == CRect(-50, -200, 350, 500));
CRect::IntersectRect
CRect Két meglévő téglalap metszetével egyenlő.
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Paraméterek
lpRect1
Egy forrás téglalapot tartalmazó struktúrára RECT vagy CRect objektumra mutat.
lpRect2
Egy forrás téglalapot tartalmazó struktúrára RECT vagy CRect objektumra mutat.
Visszaadott érték
Nonzero, ha a metszet nem üres; 0, ha a metszet üres.
Megjegyzések
A metszet a két meglévő téglalap legnagyobb téglalapja.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rectOne(125, 0, 150, 200);
CRect rectTwo(0, 75, 350, 95);
CRect rectInter;
rectInter.IntersectRect(rectOne, rectTwo);
ASSERT(rectInter == CRect(125, 75, 150, 95));
// operator &= can do the same task:
CRect rectInter2 = rectOne;
rectInter2 &= rectTwo;
ASSERT(rectInter2 == CRect(125, 75, 150, 95));
CRect::IsRectEmpty
Meghatározza, hogy üres-e CRect .
BOOL IsRectEmpty() const throw();
Visszaadott érték
Nonzero ha CRect üres; 0, ha CRect nem üres.
Megjegyzések
A téglalap üres, ha a szélesség és/vagy a magasság 0 vagy negatív. Különbözik attól IsRectNull, amely meghatározza, hogy a téglalap összes koordinátája nulla-e.
Megjegyzés:
A téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalap normalizálására.
példa
CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectEmpty());
ASSERT(!rectSome.IsRectEmpty());
CRect rectEmpty(35, 35, 35, 35);
ASSERT(rectEmpty.IsRectEmpty());
CRect::IsRectNull
Azt határozza meg, hogy a felső, a bal, az alsó és a jobb értékek CRect egyenlők-e 0-nak.
BOOL IsRectNull() const throw();
Visszaadott érték
Nonzero, ha CRect's top, left, bottom, and right values is equal to 0; otherwise 0.
Megjegyzések
Eltér attól IsRectEmpty, amely meghatározza, hogy a téglalap üres-e.
példa
CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectNull());
ASSERT(!rectSome.IsRectNull());
// note that null means _all_ zeros
CRect rectNotNull(0, 0, 35, 50);
ASSERT(!rectNotNull.IsRectNull());
CRect::MoveToX
A függvény meghívásával helyezze át a téglalapot a megadott xabszolút x koordinátára.
void MoveToX(int x) throw();
Paraméterek
x
A téglalap bal felső sarkának abszolút x koordinátája.
példa
CRect rect(0, 0, 100, 100);
rect.MoveToX(10);
// rect is now (10, 0, 110, 100);
ASSERT(rect == CRect(10, 0, 110, 100));
CRect::MoveToXY
A függvény meghívásával helyezze át a téglalapot a megadott abszolút x- és y koordinátákra.
void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();
Paraméterek
x
A téglalap bal felső sarkának abszolút x koordinátája.
y
A téglalap bal felső sarkának abszolút y koordinátája.
point
A POINT téglalap abszolút bal felső sarkát meghatározó struktúra.
példa
CRect rect(0, 0, 100, 100);
rect.MoveToXY(10, 10);
// rect is now (10, 10, 110, 110);
ASSERT(rect == CRect(10, 10, 110, 110));
CRect::MoveToY
A függvény meghívásával helyezze át a téglalapot a megadott yabszolút y koordinátára.
void MoveToY(int y) throw();
Paraméterek
y
A téglalap bal felső sarkának abszolút y koordinátája.
példa
CRect rect(0, 0, 100, 100);
rect.MoveToY(10);
// rect is now (0, 10, 100, 110);
ASSERT(rect == CRect(0, 10, 100, 110));
CRect::NormalizeRect
Normalizálja CRect , hogy mind a magasság, mind a szélesség pozitív legyen.
void NormalizeRect() throw();
Megjegyzések
A téglalap normalizálva van a negyedik negyedes elhelyezéshez, amelyet a Windows általában a koordinátákhoz használ.
NormalizeRect összehasonlítja a felső és az alsó értékeket, és felcseréli őket, ha a felső nagyobb, mint az alsó. Hasonlóképpen felcseréli a bal és a jobb értéket, ha a bal nagyobb, mint a jobb. Ez a függvény akkor hasznos, ha különböző leképezési módokat és fordított téglalapokat kezel.
Megjegyzés:
A következő CRect tagfüggvények normalizált téglalapokat igényelnek a megfelelő működéshez: Height, Width, , Size, PtInRectIsRectEmpty, SubtractRectUnionRectoperator ==IntersectRectEqualRectoperator |operator |=operator !=operator &és .operator &=
példa
CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);
CRect::OffsetRect
A megadott eltolások szerint mozog CRect .
void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();
Paraméterek
x
A balra vagy jobbra mozgatni kívánt összeget adja meg. Balra mozgáshoz negatívnak kell lennie.
y
Megadja a felfelé vagy lefelé mozgatni kívánt összeget. Negatívnak kell lennie a feljebb lépéshez.
point
Olyan struktúrát POINT vagy CPoint objektumot tartalmaz, amely mindkét dimenziót meghatározza, amellyel áthelyezhető.
size
Olyan struktúrát SIZE vagy CSize objektumot tartalmaz, amely mindkét dimenziót meghatározza, amellyel áthelyezhető.
Megjegyzések
Az egységek mozgatása CRectx az x tengely és y az egységek mentén az y tengely mentén. A x paraméterek aláírt y értékek, ezért CRect áthelyezhetők balra vagy jobbra, illetve felfelé vagy lefelé.
példa
CRect rect(0, 0, 35, 35);
rect.OffsetRect(230, 230);
// rect is now (230, 230, 265, 265)
ASSERT(rect == CRect(230, 230, 265, 265));
CRect::operator LPCRECT
Átalakítja az a-t CRect egy LPCRECT.
operator LPCRECT() const throw();
Megjegyzések
Ha ezt a függvényt használja, nincs szükség a (&) cím operátorra. Ezt az operátort a rendszer automatikusan használja, ha egy objektumot CRect egy olyan függvénynek ad át, amely egy LPCRECT.
CRect::operator LPRECT
Átalakítja az a-t CRect egy LPRECT.
operator LPRECT() throw();
Megjegyzések
Ha ezt a függvényt használja, nincs szükség a (&) cím operátorra. Ezt az operátort a rendszer automatikusan használja, ha egy objektumot CRect egy olyan függvénynek ad át, amely egy LPRECT.
példa
Lásd a példát a CRect::operator LPCRECT.
CRect::operator =
srcRect
CRectHozzá van rendelve.
void operator=(const RECT& srcRect) throw();
Paraméterek
srcRect
Forrás téglalapra hivatkozik. Lehet egy RECT vagy CRect.
példa
CRect rect(0, 0, 127, 168);
CRect rect2;
rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));
CRect::operator ==
Meghatározza, hogy CRect egyenlő-e rect a bal felső és a jobb alsó sarok koordinátáinak összehasonlítása.
BOOL operator==(const RECT& rect) const throw();
Paraméterek
rect
Forrás téglalapra hivatkozik. Lehet egy RECT vagy CRect.
Visszaadott érték
Nonzero, ha egyenlő; egyéb esetben 0.
Megjegyzések
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 == rect2);
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect1 == test);
CRect::operator !=
Meghatározza, hogy CRect nem egyenlő-e rect a bal felső és a jobb alsó sarok koordinátáinak összehasonlításával.
BOOL operator!=(const RECT& rect) const throw();
Paraméterek
rect
Forrás téglalapra hivatkozik. Lehet egy RECT vagy CRect.
Visszaadott érték
Nonzero, ha nem egyenlő; egyéb esetben 0.
Megjegyzések
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 != rect3);
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect3 != test);
CRect::operator +=
Az első két túlterhelés a megadott eltolások szerint mozog CRect .
void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();
Paraméterek
point
Olyan POINT struktúra vagy CPoint objektum, amely meghatározza a téglalap mozgatásához használandó egységek számát.
size
Olyan SIZE struktúra vagy CSize objektum, amely meghatározza a téglalap mozgatásához használandó egységek számát.
lpRect
Egy olyan szerkezetre vagy CRect objektumra RECT mutat, amely tartalmazza az egyes oldalokat CRectfelfújni kívánt egységek számát.
Megjegyzések
A paraméter x és (vagy cxcy) értékei hozzá lesznek adva a paraméterhez CRecty .
A harmadik túlterhelést a paraméter egyes részeiben megadott egységek száma növeli CRect .
példa
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2(135, 300, 235, 400);
rect1 += pt;
ASSERT(rect1 == rect2);
CRect::operator -=
Az első két túlterhelés a megadott eltolások szerint mozog CRect .
void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();
Paraméterek
point
Olyan POINT struktúra vagy CPoint objektum, amely meghatározza a téglalap mozgatásához használandó egységek számát.
size
Olyan SIZE struktúra vagy CSize objektum, amely meghatározza a téglalap mozgatásához használandó egységek számát.
lpRect
Egy olyan szerkezetre vagy CRect objektumra RECT mutat, amely tartalmazza a mértékegységek számát, amelyek az egyes oldalukon deflálnakCRect.
Megjegyzések
A paraméter x és (vagy cxcy) értékeit a rendszer kivonja a függvényből CRecty .
A harmadik túlterhelés a paraméter egyes részeiben megadott egységek számával töredezett CRect . Vegye figyelembe, hogy ez a túlterhelés a következőképpen DeflateRectműködik: .
példa
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
rect1 -= pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);
CRect::operator &=
A CRect metszéspont CRectrectés a .
void operator&=(const RECT& rect) throw();
Paraméterek
rect
RECT Egy vagy CRect.
Megjegyzések
A metszet a legnagyobb téglalap, amely mindkét téglalapban található.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
Lásd a példát a CRect::IntersectRect.
CRect::operator |=
A halmazok CRect megegyeznek CRect az és recta .
void operator|=(const RECT& rect) throw();
Paraméterek
rect
CRect Egy vagy RECT.
Megjegyzések
Az egyesítő a legkisebb téglalap, amely mindkét forrás téglalapot tartalmazza.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
rect1 |= rect2;
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect1);
CRect::operator +
Az első két túlterhelés olyan CRect objektumot ad vissza, amelyet CRect a megadott eltolások elmozdítottak.
CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();
Paraméterek
point
Olyan POINT struktúra vagy CPoint objektum, amely meghatározza a visszatérési érték áthelyezéséhez használandó egységek számát.
size
Olyan SIZE struktúra vagy CSize objektum, amely meghatározza a visszatérési érték áthelyezéséhez használandó egységek számát.
lpRect
Olyan szerkezetre vagy CRect objektumra RECT mutat, amely a visszatérési érték mindkét oldalát felfújó egységek számát tartalmazza.
Visszaadott érték
A CRect paraméterben megadott egységek számával történő áthelyezés vagy felfújás CRect eredménye.
Megjegyzések
A rendszer hozzáadja a paraméter és y (vagy cxcy) paramétereit a pozícióhozCRect.x
A harmadik túlterhelés egy olyan újat CRect ad vissza, amely a paraméter egyes részeiben megadott egységek számával egyenlő CRect .
példa
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2;
rect2 = rect1 + pt;
CRect rectResult(135, 300, 235, 400);
ASSERT(rectResult == rect2);
CRect::operator -
Az első két túlterhelés olyan CRect objektumot ad vissza, amelyet CRect a megadott eltolások elmozdítottak.
CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();
Paraméterek
point
Olyan POINT struktúra vagy CPoint objektum, amely meghatározza a visszatérési érték áthelyezéséhez használandó egységek számát.
size
Olyan SIZE struktúra vagy CSize objektum, amely meghatározza a visszatérési érték áthelyezéséhez használandó egységek számát.
lpRect
Olyan szerkezetre vagy CRect objektumra RECT mutat, amely a visszatérési érték egyes oldalainak deflálásához használandó egységek számát tartalmazza.
Visszaadott érték
A CRect paraméterben megadott egységek számával történő áthelyezés vagy leolvasztás CRect eredménye.
Megjegyzések
A paraméter x és (vagy cxcy) paramétereket a rendszer kivonja a pozícióból CRecty .
A harmadik túlterhelés egy olyan újat CRect ad vissza, amely egyenlő CRect a paraméter egyes részeiben megadott egységek számával. Vegye figyelembe, hogy ez a túlterhelés a következőképpen DeflateRectműködik, nem SubtractRect.
példa
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2;
rect2 = rect1 - pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect2 == rectResult);
CRect::operator &
CRect A rect2 és a rect2 metszetét CRect adja vissza.
CRect operator&(const RECT& rect2) const throw();
Paraméterek
rect2
RECT Egy vagy CRect.
Visszaadott érték
A CRect , hogy a metszete CRect és rect2.
Megjegyzések
A metszet a legnagyobb téglalap, amely mindkét téglalapban található.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3 = rect1 & rect2;
CRect rectResult(100, 100, 200, 200);
ASSERT(rectResult == rect3);
CRect::operator |
Egy olyan értéket CRect ad vissza, amely az és rect2a CRect .
CRect operator|(const RECT&
rect2) const throw();
Paraméterek
rect2
RECT Egy vagy CRect.
Visszaadott érték
A CRect , hogy az unió és CRectrect2.
Megjegyzések
Az egyesítő a legkisebb téglalap, amely mindkét téglalapot tartalmazza.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3 = rect1 | rect2;
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);
CRect::PtInRect
Meghatározza, hogy a megadott pont belül van-e CRect.
BOOL PtInRect(POINT point) const throw();
Paraméterek
point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.
Visszaadott érték
Nonzero, ha a pont belül CRectvan; egyébként 0.
Megjegyzések
A pont belül CRect van, ha a bal vagy a felső oldalon helyezkedik el, vagy mind a négy oldalon belül van. A jobb vagy az alsó oldalon egy pont kívül CRectvan.
Megjegyzés:
A téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalap normalizálására.
példa
CRect rect(5, 5, 100, 100);
CPoint pt1(35, 50);
CPoint pt2(125, 298);
// this is true, because pt1 is inside the rectangle
ASSERT(rect.PtInRect(pt1));
// this is NOT true, because pt2 is outside the rectangle
ASSERT(!rect.PtInRect(pt2));
// note that the right and the bottom aren't inside
ASSERT(!rect.PtInRect(CPoint(35, 100)));
ASSERT(!rect.PtInRect(CPoint(100, 98)));
// but the top and the left are inside
ASSERT(rect.PtInRect(CPoint(5, 65)));
ASSERT(rect.PtInRect(CPoint(88, 5)));
// and that PtInRect() works against a POINT, too
POINT pt;
pt.x = 35;
pt.y = 50;
ASSERT(rect.PtInRect(pt));
CRect::SetRect
A megadott koordináták dimenzióit CRect állítja be.
void SetRect(int x1, int y1, int x2, int y2) throw();
Paraméterek
x1
A bal felső sarok x koordinátáját adja meg.
y1
A bal felső sarok y koordinátáját adja meg.
x2
A jobb alsó sarok x koordinátáját adja meg.
y2
A jobb alsó sarok y koordinátáját adja meg.
példa
CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));
CRect::SetRectEmpty
Null téglalapot hoz létre CRect úgy, hogy az összes koordinátát nullára állítja.
void SetRectEmpty() throw();
példa
CRect rect;
rect.SetRectEmpty();
// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());
CRect::SIZE
A cx visszatérési érték és cy a tagok tartalmazzák a magasságot és a szélességet CRect.
CSize Size() const throw();
Visszaadott érték
Olyan CSize objektum, amely a méretet CRecttartalmazza.
Megjegyzések
A magasság vagy a szélesség negatív lehet.
Megjegyzés:
A téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalap normalizálására.
példa
CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);
CRect::SubtractRect
Az egyenlő dimenziók CRect méretei a kivonásbóllpRectSrc2.lpRectSrc1
BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();
Paraméterek
lpRectSrc1
Arra a RECT szerkezetre vagy CRect objektumra mutat, amelyből egy téglalapot ki kell vonni.
lpRectSrc2
RECT A paraméter által lpRectSrc1 mutatott téglalapból kivonandó szerkezetre vagy CRect objektumra mutat.
Visszaadott érték
Nonzero, ha a függvény sikeres; egyéb esetben 0.
Megjegyzések
A kivonás a legkisebb téglalap, amely tartalmazza az összes pontot lpRectScr1 , amelyek nem a metszetében lpRectScr1 és lpRectScr2.
A megadott lpRectSrc1 téglalap változatlan marad, ha a megadott lpRectSrc2 téglalap nem fedi át teljesen az x vagy az y irányban megadott lpRectSrc1 téglalapot.
Ha például lpRectSrc1 (10,10, 100 100) és lpRectSrc2 (50,50, 150 150) lenne, akkor a függvény visszatérésekor a megadott lpRectSrc1 téglalap változatlan maradna. Ha lpRectSrc1 (10,10, 100,100) és lpRectSrc2 (50,10, 150,150) lenne, akkor azonban a függvény visszaadásakor a megadott lpRectSrc1 téglalap tartalmazza a koordinátákat (10,10, 50 100).
SubtractRect nem ugyanaz, mint az operátor - vagy operátor -=. Egyik operátor sem hív SubtractRect.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
RECT rectOne;
RECT rectTwo;
rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;
rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;
CRect rectDiff;
rectDiff.SubtractRect(&rectOne, &rectTwo);
CRect rectResult(10, 10, 50, 100);
ASSERT(rectDiff == rectResult);
// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion
CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;
rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);
CRect::TopLeft
A koordinátákat a rendszer egy CPoint olyan objektumra mutató hivatkozásként adja vissza, amely a fájlban CRecttalálható.
CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();
Visszaadott érték
A téglalap bal felső sarkának koordinátái.
Megjegyzések
Ezzel a függvénnyel lekérheti vagy beállíthatja a téglalap bal felső sarkát. Állítsa be a sarokban ezt a függvényt a hozzárendelési operátor bal oldalán.
példa
Lásd a példát a CRect::CenterPoint.
CRect::UnionRect
A két forrás téglalap egyesítésével CRect egyenlő méreteket ad meg.
BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Paraméterek
lpRect1
Egy forrás téglalapot RECT tartalmazó vagy CRect azt tartalmazó téglalapra mutat.
lpRect2
Egy forrás téglalapot RECT tartalmazó vagy CRect azt tartalmazó téglalapra mutat.
Visszaadott érték
Nonzero, ha az unió nem üres; 0, ha az unió üres.
Megjegyzések
Az egyesítő a legkisebb téglalap, amely mindkét forrás téglalapot tartalmazza.
A Windows figyelmen kívül hagyja egy üres téglalap méretét; vagyis olyan téglalap, amelynek nincs magassága vagy szélessége.
Megjegyzés:
Mindkét téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalapok normalizálására.
példa
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3.UnionRect(&rect1, &rect2);
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);
CRect::Width
Kiszámítja a szélességet CRect úgy, hogy kivonja a bal értéket a jobb értékből.
int Width() const throw();
Visszaadott érték
A szélessége CRect.
Megjegyzések
A szélesség negatív lehet.
Megjegyzés:
A téglalapot normalizálni kell, vagy ez a függvény sikertelen lehet. A függvény meghívása előtt meghívhatja NormalizeRect a téglalap normalizálására.
példa
CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);