Megosztás a következőn keresztül:


CPoint osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) és az Active Template Library (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Hasonló a Windows-struktúrához POINT .

Szemantika

class CPoint : public tagPOINT

Tagok

Nyilvános konstruktorok

Név Description
CPoint::CPoint Létrehoz egy CPoint-t.

Nyilvános módszerek

Név Description
CPoint::Offset Értékeket ad hozzá a xyCPoint.

Nyilvános operátorok

Név Description
CPoint::operator - Az a CPoint és a SIZE, vagy az eltolás POINTkülönbségét adja vissza, vagy a CSize két POINTs közötti különbséget, vagy a negatív SIZEeltolást.
CPoint::operator != Két s közötti POINTegyenlőtlenség ellenőrzése.
CPoint::operator + Egy és egy SIZE vagy , vagy POINTegy CRect eltolás összegét CPoint adja eredményülSIZE.
CPoint::operator += Eltolások CPoint egy SIZE vagy POINT.
CPoint::operator -= Eltolások CPoint egy vagy POINTtöbb kivonásával SIZE
CPoint::operator == Két s közötti POINTegyenlőség ellenőrzése.

Megjegyzések

Emellett tagfüggvényeket is tartalmaz a manipuláláshoz CPoint és POINT a struktúrákhoz.

Az CPoint objektumok bárhol használhatók, ahol egy POINT szerkezetet használnak. Az osztály olyan operátorai, amelyek egy objektumot vagy SIZE struktúrát SIZE használnakCSize, mivel a kettő felcserélhető.

Megjegyzés:

Ez az osztály a tagPOINT szerkezetből származik. (A név tagPOINT a struktúra ritkábban POINT használt neve.) Ez azt jelenti, hogy a struktúra adattagja POINT és xya .CPoint

Megjegyzés:

A megosztott használati osztályokról (például CPoint) további információt a Megosztott osztályok című témakörben talál.

Öröklési hierarchia

tagPOINT

CPoint

Requirements

Fejléc:atltypes.h

CPoint::CPoint

Egy CPoint objektumot hoz létre.

CPoint() throw();
CPoint(int initX, int initY) throw();
CPoint(POINT initPt) throw();
CPoint(SIZE initSize) throw();
CPoint(LPARAM dwPoint) throw();

Paraméterek

initX
A tag értékét xCPointadja meg.

initY
A tag értékét yCPointadja meg.

initPt
POINT szerkezetet, vagy CPoint az inicializáláshoz CPointhasznált értékeket adja meg.

initSize
SIZE szerkezetet, vagy CSize az inicializáláshoz CPointhasznált értékeket adja meg.

dwPoint
A tagot x az alacsonyrendű szóra dwPoint , a tagot pedig y a magasrendű szóra állítja dwPoint.

Megjegyzések

Ha nincs argumentum, x és y a tagok értéke 0.

Example

CPoint   ptTopLeft(0, 0);
// works from a POINT, too

POINT   ptHere;
ptHere.x = 35;
ptHere.y = 95;

CPoint   ptMFCHere(ptHere);

// works from a SIZE
SIZE   sHowBig;
sHowBig.cx = 300;
sHowBig.cy = 10;

CPoint ptMFCBig(sHowBig);
// or from a DWORD

DWORD   dwSize;
dwSize = MAKELONG(35, 95);

CPoint ptFromDouble(dwSize);
ASSERT(ptFromDouble == ptMFCHere);

CPoint::Offset

Értékeket ad hozzá a xyCPoint.

void Offset(int xOffset, int yOffset) throw();
void Offset(POINT point) throw();
void Offset(SIZE size) throw();

Paraméterek

xOffset
Megadja a tag eltolásának xCPointösszegét.

yOffset
Megadja a tag eltolásának yCPointösszegét.

point
Megadja az eltoláshoz CPointhasználandó összeget (POINTvagy CPoint)

size
Megadja az eltoláshoz CPointhasználandó összeget (SIZEvagy CSize)

Example

CPoint   ptStart(100, 100);
ptStart.Offset(35, 35);

CPoint   ptResult(135, 135);
ASSERT(ptStart == ptResult);

// works with POINT, too

ptStart = CPoint(100, 100);
POINT pt;

pt.x = 35;
pt.y = 35;

ptStart.Offset(pt);

ASSERT(ptStart == ptResult);

// works with SIZE, too

ptStart = CPoint(100, 100);
SIZE size;

size.cx = 35;
size.cy = 35;

ptStart.Offset(size);

ASSERT(ptStart == ptResult);   

CPoint::operator ==

Két s közötti POINTegyenlőség ellenőrzése.

BOOL operator==(POINT point) const throw();

Paraméterek

point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.

Visszaadott érték

Nonzero, ha az POINTs egyenlő; egyébként 0.

Example

CPoint ptFirst(256, 128);
CPoint ptTest(256, 128);

ASSERT(ptFirst == ptTest);

// works with POINTs, too

POINT pt;
pt.x = 256;
pt.y = 128;

ASSERT(ptTest == pt);

// note that pt == ptTest isn't correct!   

CPoint::operator !=

Két s közötti POINTegyenlőtlenség ellenőrzése.

BOOL operator!=(POINT point) const throw();

Paraméterek

point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.

Visszaadott érték

Nonzero, ha az POINTek nem egyenlőek; egyébként 0.

Example

CPoint ptFirst(256, 128);
CPoint ptTest(111, 333);

ASSERT(ptFirst != ptTest);

// works with POINTs, too

POINT pt;
pt.x = 333;
pt.y = 111;

ASSERT(ptTest != pt);

// note that pt != ptTest isn't correct!   

CPoint::operator +=

Az első túlterhelés hozzáadja SIZE a CPoint.

void operator+=(SIZE size) throw();
void operator+=(POINT point) throw();

Paraméterek

size
Szerkezetet SIZE vagy CSize objektumot tartalmaz.

point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.

Megjegyzések

A második túlterhelés hozzáadja POINT a CPoint.

A hozzáadás mindkét esetben úgy történik, hogy hozzáadja a x jobb oldali operandus (vagy cx) tagját a CPointx taghoz, és hozzáadja a y jobb operandus (vagy cy) tagját a yCPointtaghoz.

Ha például hozzáad egy változóhoz, CPoint(5, -7) amely a változót a CPoint(30, 40) következőre CPoint(35, 33)módosítja: .

Example

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);

ptStart += szOffset;

CPoint   ptResult(135, 135);

ASSERT(ptResult == ptStart);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptStart += sz;

ASSERT(ptResult == ptStart);   

CPoint::operator -=

Az első túlterhelés kivonja a aSIZE.CPoint

void operator-=(SIZE size) throw();
void operator-=(POINT point) throw();

Paraméterek

size
Szerkezetet SIZE vagy CSize objektumot tartalmaz.

point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.

Megjegyzések

A második túlterhelés kivonja a aPOINT.CPoint

A kivonás mindkét esetben úgy történik, hogy kivonja a x jobb oldali operandus (vagy cx) tagját a CPointx tagból, és kivonja a y jobb oldali operandus (vagy cy) tagját a yCPointtagból.

Például kivonás egy változóból, amely a változót tartalmazzaCPoint(30, 40), a változót CPoint(5, -7) a következőre módosítjaCPoint(25, 47): .

Example

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);

ptStart -= szOffset;

CPoint   ptResult(65, 65);

ASSERT(ptResult == ptStart);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptStart -= sz;

ASSERT(ptResult == ptStart);   

CPoint::operator +

Ezzel az operátorral eltolást CPoint alkalmazhat egy CPoint vagy CSize objektummal, vagy eltolhat egy CRect .CPoint

CPoint operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();

Paraméterek

size
Szerkezetet SIZE vagy CSize objektumot tartalmaz.

point
Szerkezetet POINT vagy CPoint objektumot tartalmaz.

lpRect
Egy szerkezetre vagy CRect objektumra mutató RECT mutatót tartalmaz.

Visszaadott érték

Olyan CPoint , amely eltolása egy SIZE, egy CPoint eltolása POINTegy , vagy egy CRect eltolás egy POINT.

Megjegyzések

Ha például az első két túlterhelés egyikét használja a pont CPoint(25, -19)CPoint(15, 5) vagy a méret CSize(15, 5) eltolásához, akkor az értéket CPoint(40, -14)adja vissza.

Ha ad hozzá egy ad hozzá egy CRectPOINT értéket, az eltolás CRect után a x függvényben megadott értékek y lesznek POINTeltolva. Ha például az utolsó túlterhelést használja egy téglalap CRect(125, 219, 325, 419) ponttal való CPoint(25, -19) eltolásához, az eredmény.CRect(150, 200, 350, 400)

Example

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);
CPoint   ptEnd;

ptEnd = ptStart + szOffset;

CPoint   ptResult(135, 135);

ASSERT(ptResult == ptEnd);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptEnd = ptStart + sz;

ASSERT(ptResult == ptEnd);   

CPoint::operator -

Az első két túlterhelés egyikével vonjon ki egy vagy CSize több CPoint objektumot a fájlbólCPoint.

CSize operator-(POINT point) const throw();
CPoint operator-(SIZE size) const throw();
CRect operator-(const RECT* lpRect) const throw();
CPoint operator-() const throw();

Paraméterek

point
Egy POINT struktúra vagy CPoint objektum.

size
Egy SIZE struktúra vagy CSize objektum.

lpRect
Egy struktúra vagy objektum mutatója RECTCRect .

Visszaadott érték

Ez CSize a két POINTs közötti különbség, egy CPoint , amelyet egy eltolás SIZEeltolása, CRect egy eltolás egy eltolásával POINT, vagy egy CPointPOINT.

Megjegyzések

A harmadik túlterhelés a CRectCPoint. Végül használja a unary operátort a tagadáshoz CPoint.

Például az első túlterheléssel megkeresi a két pont CPoint(25, -19)CPoint(15, 5) és a visszatérés közötti különbséget CSize(10, -24).

A forrás kivonása CSizeCPoint ugyanazt a számítást végzi, mint a fenti, de egy CPoint objektumot ad vissza, nem objektumot CSize . A második túlterhelést használva például megtalálhatja a pont CPoint(25, -19) és a méret CSize(15, 5) közötti különbséget CPoint(10, -24).

Ha egy téglalapot kivon egy POINT téglalapból, akkor a téglalap eltolását a megadott és y a megadott POINTértékek negatívjaival x adja vissza. Ha például az utolsó túlterhelést használja a téglalap CRect(125, 200, 325, 400) ponttal való CPoint(25, -19)CRect(100, 219, 300, 419)eltolásához.

A unary operátorral tagadhatja meg a POINT. Ha például a unary operátort használja a ponttal CPoint(25, -19)CPoint(-25, 19).

Example

// example for CPoint subtraction
CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);
CPoint   ptEnd;

ptEnd = ptStart - szOffset;

CPoint   ptResult(65, 65);

ASSERT(ptResult == ptEnd);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptEnd = ptStart - sz;

ASSERT(ptResult == ptEnd);

// example for CPoint unary operator
CPoint   pt(35, 35);
pt = -pt;

CPoint ptNeg(-35, -35);
ASSERT(pt == ptNeg);   

Lásd még

MFC-minta MDI
hierarchiadiagram
POINT Szerkezet
CRect osztály
CSize osztály