Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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