Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vergelijkbaar met een Windows-structuur RECT .
Syntaxis
class CRect : public tagRECT
Leden
Openbare constructors
| Naam | Beschrijving |
|---|---|
CRect::CRect |
Maakt een CRect-object. |
Openbare methoden
| Naam | Beschrijving |
|---|---|
CRect::BottomRight |
Retourneert het rechteronderpunt van CRect. |
CRect::CenterPoint |
Retourneert het middelpunt van CRect. |
CRect::CopyRect |
Hiermee kopieert u de afmetingen van een bronrechthoek naar CRect. |
CRect::DeflateRect |
Hiermee wordt de breedte en hoogte van CRect. |
CRect::EqualRect |
Bepaalt of CRect deze gelijk is aan de opgegeven rechthoek. |
CRect::Height |
Berekent de hoogte van CRect. |
CRect::InflateRect |
Verhoogt de breedte en hoogte van CRect. |
CRect::IntersectRect |
Sets CRect zijn gelijk aan het snijpunt van twee rechthoeken. |
CRect::IsRectEmpty |
Bepaalt of CRect deze leeg is.
CRect is leeg als de breedte en/of hoogte 0 zijn. |
CRect::IsRectNull |
Bepaalt of de topvariabelen , bottomen leftright lidvariabelen allemaal gelijk zijn aan 0. |
CRect::MoveToX |
Hiermee gaat u CRect naar de opgegeven x-coördinaat. |
CRect::MoveToXY |
Hiermee verplaatst u CRect naar de opgegeven x- en y-coördinaten. |
CRect::MoveToY |
Hiermee gaat u CRect naar de opgegeven y-coördinaat. |
CRect::NormalizeRect |
Standaardiseert de hoogte en breedte van CRect. |
CRect::OffsetRect |
Verplaatst CRect door de opgegeven offsets. |
CRect::PtInRect |
Bepaalt of het opgegeven punt binnen CRectligt. |
CRect::SetRect |
Hiermee stelt u de afmetingen van CRect. |
CRect::SetRectEmpty |
Hiermee stelt CRect u een lege rechthoek in (alle coördinaten gelijk aan 0). |
CRect::Size |
Berekent de grootte van CRect. |
CRect::SubtractRect |
Eén rechthoek van een andere rechthoek aftrekken. |
CRect::TopLeft |
Retourneert het linkerbovenpunt van CRect. |
CRect::UnionRect |
Sets CRect zijn gelijk aan de samenvoeging van twee rechthoeken. |
CRect::Width |
Berekent de breedte van CRect. |
Openbare operators
| Naam | Beschrijving |
|---|---|
CRect::operator - |
Trekt de opgegeven verschuivingen af van CRect of neemt CRect af en retourneert het resulterende CRect. |
CRect::operator LPCRECT |
Converteert een CRect naar een LPCRECT. |
CRect::operator LPRECT |
Converteert een CRect naar een LPRECT. |
CRect::operator != |
Bepaalt of CRect deze niet gelijk is aan een rechthoek. |
CRect::operator & |
Hiermee maakt u het snijpunt van CRect en een rechthoek en retourneert u het resulterende CRect. |
CRect::operator &= |
Stelt gelijk CRect aan het snijpunt van CRect en een rechthoek. |
CRect::operator | |
Hiermee maakt u de samenvoeging van CRect en een rechthoek en retourneert u het resulterende CRect. |
CRect::operator |= |
Sets CRect zijn gelijk aan de samenvoeging van CRect en een rechthoek. |
CRect::operator + |
Hiermee worden de opgegeven verschuivingen toegevoegd aan CRect of vergroot CRect en wordt het resulterende resultaat CRectgeretourneerd. |
CRect::operator += |
Hiermee worden de opgegeven offsets toegevoegd aan CRect of inflaties CRect. |
CRect::operator = |
Hiermee kopieert u de afmetingen van een rechthoek naar CRect. |
CRect::operator -= |
Trekt de opgegeven offsets af van CRect of neemt CRectaf. |
CRect::operator == |
Bepaalt of CRect deze gelijk is aan een rechthoek. |
Opmerkingen
CRect bevat ook lidfuncties voor het bewerken CRect van objecten en Windows-structuren RECT .
Een CRect object kan worden doorgegeven als een functieparameter waar een RECT structuur, LPCRECTof LPRECT kan worden doorgegeven.
Opmerking
Deze klasse is afgeleid van de tagRECT structuur. (De naam tagRECT is een minder gebruikte naam voor de RECT structuur.) Dit betekent dat de gegevensleden (left, top, righten bottom) van de RECT structuur toegankelijke gegevensleden van CRectzijn.
Een CRect bevat lidvariabelen die de punten linksboven en rechtsonder van een rechthoek definiëren.
Bij het opgeven van een CRect, moet u voorzichtig zijn om het zo te maken dat deze wordt genormaliseerd, met andere woorden, dat de waarde van de linkercoördinaat kleiner is dan de rechtercoördinaat en de bovenkant kleiner is dan de onderkant. In een linkerbovenhoek van (10,10) en rechtsonder van (20.20) wordt bijvoorbeeld een genormaliseerde rechthoek gedefinieerd, maar linksboven (20.20) en rechtsonder (10.10) wordt een niet-genormaliseerde rechthoek gedefinieerd. Als de rechthoek niet is genormaliseerd, kunnen veel CRect lidfuncties onjuiste resultaten retourneren. (Zie CRect::NormalizeRect voor een lijst met deze functies.) Voordat u een functie aanroept waarvoor genormaliseerde rechthoeken zijn vereist, kunt u niet-genormaliseerde rechthoeken normaliseren door de functie aan te NormalizeRect roepen.
Wees voorzichtig bij het bewerken van een CRect met de CDC::DPtoLP functies en CDC::LPtoDP leden. Als de toewijzingsmodus van een weergavecontext zodanig is dat de y-extent negatief is, zoals in MM_LOENGLISH, transformeert u CDC::DPtoLP de CRect waarde zodat de bovenkant groter is dan de onderkant. Functies zoals Height en Size retourneren vervolgens negatieve waarden voor de hoogte van de getransformeerde CRectwaarde en de rechthoek wordt niet genormaliseerd.
Wanneer u overbelaste CRect operators gebruikt, moet de eerste operand een CRectzijn; de tweede kan een RECT structuur of een CRect object zijn.
Overnamehiërarchie
tagRECT
CRect
Behoeften
koptekst:atltypes.h
CRect::BottomRight
De coördinaten worden geretourneerd als een verwijzing naar een CPoint object in CRect.
CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();
Retourwaarde
De coördinaten van de rechterbenedenhoek van de rechthoek.
Opmerkingen
U kunt deze functie gebruiken om de rechterbenedenhoek van de rechthoek op te halen of in te stellen. Stel de hoek in met behulp van deze functie aan de linkerkant van de toewijzingsoperator.
Voorbeeld
// 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
Berekent het middelpunt van CRect door de linker- en rechterwaarden toe te voegen en door twee te delen, en de bovenste en laagste waarden toe te voegen en door twee te delen.
CPoint CenterPoint() const throw();
Retourwaarde
Een CPoint object dat het middelpunt is van CRect.
Voorbeeld
// 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
Kopieert de lpSrcRect rechthoek naar CRect.
void CopyRect(LPCRECT lpSrcRect) throw();
Parameterwaarden
lpSrcRect
Verwijst naar de structuur of CRect het RECT object dat moet worden gekopieerd.
Voorbeeld
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
Maakt een CRect-object.
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();
Parameterwaarden
l
Hiermee geeft u de linkerpositie van CRect.
t
Hiermee geeft u de bovenkant van CRect.
r
Hiermee geeft u de juiste positie van CRect.
b
Hiermee geeft u de onderkant van CRect.
srcRect
Verwijst naar de RECT structuur met de coördinaten voor CRect.
lpSrcRect
Verwijst naar de RECT structuur met de coördinaten voor CRect.
point
Hiermee geeft u het oorsprongspunt voor de rechthoek die moet worden samengesteld. Komt overeen met de linkerbovenhoek.
size
Hiermee geeft u de verplaatsing van de linkerbovenhoek naar de rechterbenedenhoek van de rechthoek die moet worden samengesteld.
topLeft
Hiermee geeft u de positie linksboven van CRect.
bottomRight
Hiermee geeft u de positie rechtsonder van CRect.
Opmerkingen
Als er geen argumenten worden gegeven, left, , topen bottomrightleden worden ingesteld op 0.
De CRect(const RECT&) en CRect(LPCRECT) constructors voeren een CopyRect. De andere constructors initialiseren de lidvariabelen van het object rechtstreeks.
Voorbeeld
// 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 deflateert CRect door de zijkanten naar het midden te verplaatsen.
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();
Parameterwaarden
x
Hiermee geeft u het aantal eenheden op om de linker- en rechterkant van CRect.
y
Hiermee geeft u het aantal eenheden op om de boven- en onderkant van CRect.
size
A SIZE of CSize dat het aantal eenheden aangeeft dat moet worden afgeblazen CRect. De cx waarde geeft het aantal eenheden aan dat de linker- en rechterzijde moet worden gedeflatd en de cy waarde geeft het aantal eenheden op dat moet worden gedeflatd de bovenkant en onderkant.
lpRect
Verwijst naar een RECT structuur of CRect waarmee het aantal eenheden wordt aangegeven dat elke zijde moet worden afgeblazen.
l
Hiermee geeft u het aantal eenheden op om de linkerkant van CRect.
t
Hiermee geeft u het aantal eenheden op om de bovenkant van CRect.
r
Hiermee geeft u het aantal eenheden op om de rechterkant van CRect.
b
Hiermee geeft u het aantal eenheden dat de onderkant van CRect.
Opmerkingen
DeflateRect Hiervoor voegt u eenheden toe aan de linkerkant en boven en trekt u eenheden van rechts en onder af. De parameters van DeflateRect zijn ondertekende waarden; positieve waarden afnemen CRect en negatieve waarden worden vergroot.
De eerste twee overbelastingen deflateren beide paren van tegenovergestelde zijden, CRect zodat de totale breedte met twee keer x (of cx) wordt verlaagd en de totale hoogte met twee keer y (of cy). De andere twee overbelastingen deflateren elke kant van CRect onafhankelijk van de andere.
Voorbeeld
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
Bepaalt of CRect deze gelijk is aan de opgegeven rechthoek.
BOOL EqualRect(LPCRECT lpRect) const throw();
Parameterwaarden
lpRect
Verwijst naar een RECT structuur of CRect object dat de coördinaten linksboven en de rechterbenedenhoek van een rechthoek bevat.
Retourwaarde
Niet-nul als de twee rechthoeken dezelfde waarden hebben boven, links, onder en rechts; anders 0.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Berekent de hoogte van CRect door de hoogste waarde af te trekken van de laagste waarde.
int Height() const throw();
Retourwaarde
De hoogte van CRect.
Opmerkingen
De resulterende waarde kan negatief zijn.
Opmerking
De rechthoek moet worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoek te normaliseren voordat u deze functie aanroept.
Voorbeeld
CRect rect(20, 30, 80, 70);
int nHt = rect.Height();
// nHt is now 40
ASSERT(nHt == 40);
CRect::InflateRect
InflateRect vergroot CRect door de zijkanten weg te bewegen van het midden.
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();
Parameterwaarden
x
Hiermee geeft u het aantal eenheden op om de linker- en rechterkant van CRect.
y
Hiermee geeft u het aantal eenheden op om de boven- en onderkant van CRect.
size
A SIZE of CSize waarmee het aantal eenheden wordt opgegeven dat moet worden CRectopgepompt. De cx waarde geeft het aantal eenheden aan dat de linker- en rechterzijde moet worden opgepompt en de cy waarde geeft het aantal eenheden op dat moet worden opgeschaald boven en onder.
lpRect
Verwijst naar een RECT structuur of CRect waarmee het aantal eenheden wordt aangegeven dat elke zijde moet worden vergroot.
l
Hiermee geeft u het aantal eenheden op om de linkerkant van CRect.
t
Hiermee geeft u het aantal eenheden op om de bovenkant van CRect.
r
Hiermee geeft u het aantal eenheden op om de rechterkant van CRect.
b
Hiermee geeft u het aantal eenheden op om de onderkant van CRect.
Opmerkingen
Om dit te doen, InflateRect trekt u eenheden van links en boven af en voegt u eenheden toe aan de rechterkant en onderkant. De parameters van InflateRect zijn ondertekende waarden; positieve waarden worden vergroot CRect en negatieve waarden afnemen.
De eerste twee overbelastingen vergroten beide paren van tegenoverliggende zijden, CRect zodat de totale breedte met twee keer x (of cx) wordt verhoogd en de totale hoogte met twee keer y (of cy). De andere twee overbelastingen worden elke kant van onafhankelijk van CRect de andere opgeblazen.
Voorbeeld
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
Maakt een CRect gelijk aan het snijpunt van twee bestaande rechthoeken.
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parameterwaarden
lpRect1
Verwijst naar een RECT structuur of CRect object dat een bronrechthoek bevat.
lpRect2
Verwijst naar een RECT structuur of CRect object dat een bronrechthoek bevat.
Retourwaarde
Niet-nul als het snijpunt niet leeg is; 0 als het snijpunt leeg is.
Opmerkingen
Het snijpunt is de grootste rechthoek in beide bestaande rechthoeken.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Bepaalt of CRect deze leeg is.
BOOL IsRectEmpty() const throw();
Retourwaarde
Niet-nul als CRect leeg is; 0 als CRect deze niet leeg is.
Opmerkingen
Een rechthoek is leeg als de breedte en/of hoogte 0 of negatief zijn. Verschilt van IsRectNull, waarmee wordt bepaald of alle coördinaten van de rechthoek nul zijn.
Opmerking
De rechthoek moet worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoek te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Bepaalt of de bovenste, linker-, onderste en rechterwaarden CRect allemaal gelijk zijn aan 0.
BOOL IsRectNull() const throw();
Retourwaarde
Niet-nul als CRectde waarden boven, links, onder en rechts allemaal gelijk zijn aan 0; anders 0.
Opmerkingen
Verschilt van IsRectEmpty, waarmee wordt bepaald of de rechthoek leeg is.
Voorbeeld
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
Roep deze functie aan om de rechthoek te verplaatsen naar de absolute x-coördinaat die is opgegeven door x.
void MoveToX(int x) throw();
Parameterwaarden
x
De absolute x-coördinaat voor de linkerbovenhoek van de rechthoek.
Voorbeeld
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
Roep deze functie aan om de rechthoek te verplaatsen naar de absolute x- en y-coördinaten die zijn opgegeven.
void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();
Parameterwaarden
x
De absolute x-coördinaat voor de linkerbovenhoek van de rechthoek.
y
De absolute y-coördinaat voor de linkerbovenhoek van de rechthoek.
point
Een POINT structuur die de absolute linkerbovenhoek van de rechthoek aangeeft.
Voorbeeld
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
Roep deze functie aan om de rechthoek te verplaatsen naar de absolute y-coördinaat die is opgegeven door y.
void MoveToY(int y) throw();
Parameterwaarden
y
De absolute y-coördinaat voor de linkerbovenhoek van de rechthoek.
Voorbeeld
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
Normaliseert CRect zodat zowel de hoogte als de breedte positief zijn.
void NormalizeRect() throw();
Opmerkingen
De rechthoek wordt genormaliseerd voor vierde kwadrantpositie, die windows doorgaans gebruikt voor coördinaten.
NormalizeRect vergelijkt de hoogste en laagste waarden en wisselt ze om als de bovenkant groter is dan de onderkant. Op dezelfde manier worden de linker- en rechterwaarden gewisseld als de linkerwaarde groter is dan de rechter. Deze functie is handig bij het omgaan met verschillende toewijzingsmodi en omgekeerde rechthoeken.
Opmerking
Voor de volgende CRect lidfuncties zijn genormaliseerde rechthoeken vereist om goed te kunnen werken: Height, , WidthSize, IsRectEmpty, PtInRect, , operator |IntersectRectoperator ==SubtractRectEqualRectUnionRectoperator !=, operator |=en .operator &=operator &
Voorbeeld
CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);
CRect::OffsetRect
Verplaatst CRect door de opgegeven offsets.
void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();
Parameterwaarden
x
Hiermee geeft u de hoeveelheid naar links of rechts te verplaatsen. Het moet negatief zijn om naar links te gaan.
y
Hiermee geeft u de hoeveelheid omhoog of omlaag te verplaatsen. Het moet negatief zijn om omhoog te gaan.
point
Bevat een POINT structuur of CPoint object waarin beide dimensies worden opgegeven waarmee moet worden verplaatst.
size
Bevat een SIZE structuur of CSize object waarin beide dimensies worden opgegeven waarmee moet worden verplaatst.
Opmerkingen
Hiermee verplaatst u CRectx eenheden langs de x-as en y eenheden langs de y-as. De x waarden en y parameters zijn ondertekende waarden, dus CRect kunnen links of rechts en omhoog of omlaag worden verplaatst.
Voorbeeld
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
Converteert een CRect naar een LPCRECT.
operator LPCRECT() const throw();
Opmerkingen
Wanneer u deze functie gebruikt, hebt u de operator adres van (&) niet nodig. Deze operator wordt automatisch gebruikt wanneer u een CRect object doorgeeft aan een functie die een LPCRECT.
CRect::operator LPRECT
Converteert een CRect naar een LPRECT.
operator LPRECT() throw();
Opmerkingen
Wanneer u deze functie gebruikt, hebt u de operator adres van (&) niet nodig. Deze operator wordt automatisch gebruikt wanneer u een CRect object doorgeeft aan een functie die een LPRECT.
Voorbeeld
Zie het voorbeeld voor CRect::operator LPCRECT.
CRect::operator =
Wordt srcRect toegewezen aan CRect.
void operator=(const RECT& srcRect) throw();
Parameterwaarden
srcRect
Verwijst naar een bronrechthoek. Kan een RECT of CRect.
Voorbeeld
CRect rect(0, 0, 127, 168);
CRect rect2;
rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));
CRect::operator ==
Bepaalt of rect deze gelijk is aan CRect door de coördinaten van de hoeken linksboven en rechtsonder te vergelijken.
BOOL operator==(const RECT& rect) const throw();
Parameterwaarden
rect
Verwijst naar een bronrechthoek. Kan een RECT of CRect.
Retourwaarde
Niet-nul indien gelijk; anders 0.
Opmerkingen
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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 !=
Bepaalt of rect deze niet gelijk is aan CRect door de coördinaten van de hoeken linksboven en rechtsonder te vergelijken.
BOOL operator!=(const RECT& rect) const throw();
Parameterwaarden
rect
Verwijst naar een bronrechthoek. Kan een RECT of CRect.
Retourwaarde
Niet-nul indien niet gelijk; anders 0.
Opmerkingen
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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 +=
De eerste twee overbelastingen worden verplaatst CRect door de opgegeven offsets.
void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();
Parameterwaarden
point
Een POINT structuur of CPoint object dat het aantal eenheden aangeeft dat de rechthoek moet worden verplaatst.
size
Een SIZE structuur of CSize object dat het aantal eenheden aangeeft dat de rechthoek moet worden verplaatst.
lpRect
Verwijst naar een RECT structuur of CRect object dat het aantal eenheden bevat dat elke zijde van CRect.
Opmerkingen
De parameter- x en y (of cx ) cywaarden worden toegevoegd aan CRect.
De derde overbelasting wordt CRect vergroot door het aantal eenheden dat is opgegeven in elk lid van de parameter.
Voorbeeld
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2(135, 300, 235, 400);
rect1 += pt;
ASSERT(rect1 == rect2);
CRect::operator -=
De eerste twee overbelastingen worden verplaatst CRect door de opgegeven offsets.
void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();
Parameterwaarden
point
Een POINT structuur of CPoint object dat het aantal eenheden aangeeft dat de rechthoek moet worden verplaatst.
size
Een SIZE structuur of CSize object dat het aantal eenheden aangeeft dat de rechthoek moet worden verplaatst.
lpRect
Verwijst naar een RECT structuur of CRect object dat het aantal eenheden bevat om elke kant van CRect.
Opmerkingen
De waarden van de parameter x en y (of cx en cy) worden afgetrokken van CRect.
De derde overbelasting wordt afgeblazen CRect door het aantal eenheden dat is opgegeven in elk lid van de parameter. Houd er rekening mee dat deze overbelastingsfuncties zoals DeflateRect.
Voorbeeld
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
rect1 -= pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);
CRect::operator &=
Sets CRect gelijk aan het snijpunt van CRect en rect.
void operator&=(const RECT& rect) throw();
Parameterwaarden
rect
Bevat een RECT of CRect.
Opmerkingen
Het snijpunt is de grootste rechthoek die zich in beide rechthoeken bevindt.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
Zie het voorbeeld voor CRect::IntersectRect.
CRect::operator |=
Sets CRect zijn gelijk aan de samenvoeging van CRect en rect.
void operator|=(const RECT& rect) throw();
Parameterwaarden
rect
Bevat een CRect of RECT.
Opmerkingen
De samenvoeging is de kleinste rechthoek die beide bronrechthoeken bevat.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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 +
De eerste twee overbelastingen retourneren een CRect object dat gelijk is aan CRect verplaatst door de opgegeven offsets.
CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();
Parameterwaarden
point
Een POINT structuur of CPoint object dat het aantal eenheden aangeeft dat de retourwaarde moet worden verplaatst.
size
Een SIZE structuur of CSize object dat het aantal eenheden aangeeft dat de retourwaarde moet worden verplaatst.
lpRect
Verwijst naar een RECT structuur of CRect object dat het aantal eenheden bevat dat aan elke zijde van de retourwaarde moet worden opgepompt.
Retourwaarde
Het CRect resultaat van het verplaatsen of opblazen CRect van het aantal eenheden dat is opgegeven in de parameter.
Opmerkingen
De parameters van de parameter en y (of cx ency) worden toegevoegd aan CRectde positie van de parameterx.
De derde overbelasting retourneert een nieuwe CRect die gelijk is aan CRect het aantal eenheden dat is opgegeven in elk lid van de parameter.
Voorbeeld
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 -
De eerste twee overbelastingen retourneren een CRect object dat gelijk is aan CRect verplaatst door de opgegeven offsets.
CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();
Parameterwaarden
point
Een POINT structuur of CPoint object dat het aantal eenheden aangeeft dat de retourwaarde moet worden verplaatst.
size
Een SIZE structuur of CSize object dat het aantal eenheden aangeeft dat de retourwaarde moet worden verplaatst.
lpRect
Verwijst naar een RECT structuur of CRect object dat het aantal eenheden bevat dat aan elke zijde van de retourwaarde moet worden afgeblazen.
Retourwaarde
Het CRect resultaat van het verplaatsen of deflateren CRect door het aantal eenheden dat is opgegeven in de parameter.
Opmerkingen
De parameters van de parameter en y (of cx ency) worden afgetrokken van CRectde positie van de parameterx.
De derde overbelasting retourneert een nieuwe CRect die gelijk is aan CRect het aantal eenheden dat is opgegeven in elk lid van de parameter. Houd er rekening mee dat deze overbelastingsfuncties zoals DeflateRect, niet SubtractRect.
Voorbeeld
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 &
Retourneert een CRect snijpunt van CRect en rect2.
CRect operator&(const RECT& rect2) const throw();
Parameterwaarden
rect2
Bevat een RECT of CRect.
Retourwaarde
A CRect dat is het snijpunt van CRect en rect2.
Opmerkingen
Het snijpunt is de grootste rechthoek die zich in beide rechthoeken bevindt.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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 |
Retourneert een CRect die de samenvoeging is van CRect en rect2.
CRect operator|(const RECT&
rect2) const throw();
Parameterwaarden
rect2
Bevat een RECT of CRect.
Retourwaarde
Een CRect die de vereniging is van CRect en rect2.
Opmerkingen
De samenvoeging is de kleinste rechthoek die beide rechthoeken bevat.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Bepaalt of het opgegeven punt binnen CRectligt.
BOOL PtInRect(POINT point) const throw();
Parameterwaarden
point
Bevat een POINT structuur of CPoint object.
Retourwaarde
Niet-nul als het punt binnen CRectligt ; anders 0.
Opmerkingen
Een punt bevindt zich binnen CRect als het zich aan de linkerkant of bovenzijde bevindt of zich binnen alle vier de zijden bevindt. Een punt aan de rechterkant of onderzijde bevindt zich buiten CRect.
Opmerking
De rechthoek moet worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoek te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Hiermee stelt u de afmetingen van CRect de opgegeven coördinaten in.
void SetRect(int x1, int y1, int x2, int y2) throw();
Parameterwaarden
x1
Hiermee geeft u de x-coördinaat van de linkerbovenhoek.
y1
Hiermee geeft u de y-coördinaat van de linkerbovenhoek.
x2
Hiermee geeft u de x-coördinaat van de rechterbenedenhoek.
y2
Hiermee geeft u de y-coördinaat van de rechterbenedenhoek.
Voorbeeld
CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));
CRect::SetRectEmpty
Hiermee maakt CRect u een null-rechthoek door alle coördinaten in te stellen op nul.
void SetRectEmpty() throw();
Voorbeeld
CRect rect;
rect.SetRectEmpty();
// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());
CRect::SIZE
De cx en cy leden van de retourwaarde bevatten de hoogte en breedte van CRect.
CSize Size() const throw();
Retourwaarde
Een CSize object dat de grootte van CRect.
Opmerkingen
De hoogte of breedte kan negatief zijn.
Opmerking
De rechthoek moet worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoek te normaliseren voordat u deze functie aanroept.
Voorbeeld
CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);
CRect::SubtractRect
Maakt de afmetingen van het CRect gelijk aan de aftrekken van lpRectSrc2lpRectSrc1.
BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();
Parameterwaarden
lpRectSrc1
Verwijst naar de structuur of CRect het RECT object waaruit een rechthoek moet worden afgetrokken.
lpRectSrc2
Verwijst naar de RECT structuur of CRect het object dat moet worden afgetrokken van de rechthoek waarnaar de lpRectSrc1 parameter verwijst.
Retourwaarde
Niet-nul als de functie is geslaagd; anders 0.
Opmerkingen
De aftrekking is de kleinste rechthoek die alle punten lpRectScr1 bevat die zich niet op het snijpunt van lpRectScr1 en lpRectScr2bevinden.
De opgegeven lpRectSrc1 rechthoek wordt ongewijzigd als de rechthoek die is opgegeven door lpRectSrc2 niet volledig overlapt met de rechthoek die is opgegeven lpRectSrc1 in ten minste één van de x- of y-richtingen.
Als dat bijvoorbeeld lpRectSrc1 (10,10, 100.100) was en lpRectSrc2 (50,50, 150,150) was, zou de rechthoek waarnaar wordt verwezen lpRectSrc1 , ongewijzigd zijn wanneer de functie wordt geretourneerd. Indien lpRectSrc1 (10.10, 100.100) en lpRectSrc2 (50.10, 150.150) waren, zou de rechthoek waarnaar wordt verwezen lpRectSrc1 echter de coördinaten bevatten (10,10, 50.100) toen de functie werd geretourneerd.
SubtractRect is niet hetzelfde als operator - noch operator -=. Geen van deze operators roept ooit SubtractRectaan.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
De coördinaten worden geretourneerd als een verwijzing naar een CPoint object in CRect.
CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();
Retourwaarde
De coördinaten van de linkerbovenhoek van de rechthoek.
Opmerkingen
U kunt deze functie gebruiken om de linkerbovenhoek van de rechthoek op te halen of in te stellen. Stel de hoek in met behulp van deze functie aan de linkerkant van de toewijzingsoperator.
Voorbeeld
Zie het voorbeeld voor CRect::CenterPoint.
CRect::UnionRect
Hiermee worden de afmetingen gelijk aan de samenvoeging CRect van de twee bronrechthoeken.
BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parameterwaarden
lpRect1
Verwijst naar een RECT of CRect die een bronrechthoek bevat.
lpRect2
Verwijst naar een RECT of CRect die een bronrechthoek bevat.
Retourwaarde
Niet-nul als de samenvoeging niet leeg is; 0 als de samenvoeging leeg is.
Opmerkingen
De samenvoeging is de kleinste rechthoek die beide bronrechthoeken bevat.
Windows negeert de afmetingen van een lege rechthoek; Dat wil gezegd: een rechthoek die geen hoogte heeft of geen breedte heeft.
Opmerking
Beide rechthoeken moeten worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoeken te normaliseren voordat u deze functie aanroept.
Voorbeeld
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
Berekent de breedte van CRect door de linkerwaarde af te trekken van de rechterwaarde.
int Width() const throw();
Retourwaarde
De breedte van CRect.
Opmerkingen
De breedte kan negatief zijn.
Opmerking
De rechthoek moet worden genormaliseerd of deze functie kan mislukken. U kunt aanroepen NormalizeRect om de rechthoek te normaliseren voordat u deze functie aanroept.
Voorbeeld
CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);