CPoint
Třída
Podobá se struktuře Windows POINT
.
Syntaxe
class CPoint : public tagPOINT
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CPoint::CPoint |
Vytvoří .CPoint |
Veřejné metody
Název | Popis |
---|---|
CPoint::Offset |
Přičte hodnoty k x členům y objektu CPoint . |
Veřejné operátory
Název | Popis |
---|---|
CPoint::operator - |
Vrátí rozdíl a CPoint a , SIZE nebo negace POINT nebo CSize rozdíl mezi dvěma POINT s, nebo posun záporným SIZE . |
CPoint::operator != |
Kontroluje nerovnost mezi dvěma POINT s. |
CPoint::operator + |
Vrátí součet a CPoint SIZE nebo POINT CRect nebo posun o SIZE hodnotu . |
CPoint::operator += |
Posuny CPoint přidáním SIZE nebo POINT . |
CPoint::operator -= |
Posuny CPoint odečtením SIZE nebo POINT . |
CPoint::operator == |
Kontroluje rovnost mezi dvěma POINT s. |
Poznámky
Obsahuje také členské funkce pro manipulaci CPoint
a POINT
struktury.
Objekt CPoint
lze použít všude, kde POINT
se používá struktura. Operátory této třídy, které komunikují s SIZE
objekty CSize
nebo SIZE
strukturami, protože tyto dva objekty jsou zaměnitelné.
Poznámka:
Tato třída je odvozena ze tagPOINT
struktury. (Název tagPOINT
je méně často používaný název strukturyPOINT
.) To znamená, x
že datové členy POINT
struktury a y
jsou přístupnými datovými členy CPoint
.
Poznámka:
Další informace o sdílených třídách nástrojů (například CPoint
) naleznete v tématu Sdílené třídy.
Hierarchie dědičnosti
tagPOINT
CPoint
Požadavky
Záhlaví: atltypes.h
CPoint::CPoint
CPoint
Vytvoří objekt.
CPoint() throw();
CPoint(int initX, int initY) throw();
CPoint(POINT initPt) throw();
CPoint(SIZE initSize) throw();
CPoint(LPARAM dwPoint) throw();
Parametry
initX
Určuje hodnotu x
člena CPoint
.
initY
Určuje hodnotu y
člena CPoint
.
initPt
POINT
CPoint
nebo určuje hodnoty použité k inicializaci CPoint
.
initSize
SIZE
CSize
nebo určuje hodnoty použité k inicializaci CPoint
.
dwPoint
x
Nastaví člena na slovo dwPoint
nízkého pořadí a y
člena na slovo dwPoint
s vysokým pořadím .
Poznámky
Pokud nejsou zadány x
žádné argumenty a y
členy jsou nastaveny na hodnotu 0.
Příklad
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
Přičte hodnoty k x
členům y
objektu CPoint
.
void Offset(int xOffset, int yOffset) throw();
void Offset(POINT point) throw();
void Offset(SIZE size) throw();
Parametry
xOffset
Určuje částku, která má být posunu x
člena CPoint
.
yOffset
Určuje částku, která má být posunu y
člena CPoint
.
point
Určuje částku (POINT
nebo CPoint
) k posunu CPoint
.
size
Určuje částku (SIZE
nebo CSize
) k posunu CPoint
.
Příklad
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 ==
Kontroluje rovnost mezi dvěma POINT
s.
BOOL operator==(POINT point) const throw();
Parametry
point
POINT
Obsahuje strukturu nebo CPoint
objekt.
Návratová hodnota
Nenulové, pokud jsou rovny POINT
; jinak 0.
Příklad
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 !=
Kontroluje nerovnost mezi dvěma POINT
s.
BOOL operator!=(POINT point) const throw();
Parametry
point
POINT
Obsahuje strukturu nebo CPoint
objekt.
Návratová hodnota
Nenulové, pokud POINT
se nerovnají, jinak 0.
Příklad
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 +=
První přetížení přidá SIZE
do CPoint
.
void operator+=(SIZE size) throw();
void operator+=(POINT point) throw();
Parametry
size
SIZE
Obsahuje strukturu nebo CSize
objekt.
point
POINT
Obsahuje strukturu nebo CPoint
objekt.
Poznámky
Druhé přetížení přidá POINT
do CPoint
.
V oboupřípadechch x
cx
x
CPoint
y
cy
y
CPoint
Například přidání CPoint(5, -7)
do proměnné, která obsahuje CPoint(30, 40)
změny proměnné na CPoint(35, 33)
.
Příklad
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 -=
První přetížení odečte od SIZE
CPoint
.
void operator-=(SIZE size) throw();
void operator-=(POINT point) throw();
Parametry
size
SIZE
Obsahuje strukturu nebo CSize
objekt.
point
POINT
Obsahuje strukturu nebo CPoint
objekt.
Poznámky
Druhé přetížení odečte od POINT
CPoint
.
V obou případech se odčítání provádí odečtením x
(nebo cx
) člena pravého operandu od x
člena CPoint
a odečtením y
(nebo cy
) člena pravého operandu od y
člena operandu CPoint
.
Například odečtení CPoint(5, -7)
od proměnné, která obsahuje CPoint(30, 40)
změny proměnné na CPoint(25, 47)
.
Příklad
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 +
Tento operátor slouží k posunu CPoint
objektu CPoint
nebo CSize
objektu nebo k posunu CRect
o .CPoint
CPoint operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();
Parametry
size
SIZE
Obsahuje strukturu nebo CSize
objekt.
point
POINT
Obsahuje strukturu nebo CPoint
objekt.
lpRect
Obsahuje ukazatel na RECT
strukturu nebo CRect
objekt.
Návratová hodnota
Odsazení CPoint
je posunem SIZE
, CPoint
který je posunem POINT
, nebo CRect
posunem POINT
o .
Poznámky
Například použití jednoho z prvních dvou přetížení k posunu bodu o bod CPoint(25, -19)
CPoint(15, 5)
nebo velikost CSize(15, 5)
vrátí hodnotu CPoint(40, -14)
.
CRect
Přidání k návratu POINT
CRect
vrátí po posunu hodnotami zadanými x
y
v sadě POINT
. Například pomocí posledního přetížení posun obdélníku CRect(125, 219, 325, 419)
o bod CPoint(25, -19)
vrátí CRect(150, 200, 350, 400)
.
Příklad
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 -
K odečtení objektu nebo objektu CPoint
CSize
použijte CPoint
jedno z prvních dvou přetížení .
CSize operator-(POINT point) const throw();
CPoint operator-(SIZE size) const throw();
CRect operator-(const RECT* lpRect) const throw();
CPoint operator-() const throw();
Parametry
point
Struktura POINT
nebo CPoint
objekt
size
Struktura SIZE
nebo CSize
objekt
lpRect
Ukazatel na RECT
strukturu nebo CRect
objekt.
Návratová hodnota
To CSize
je rozdíl mezi dvěma POINT
s, CPoint
který je posunem negacem SIZE
, CRect
který je posunut negací negace , POINT
nebo to CPoint
je negace .POINT
Poznámky
Třetí přetížení posune CRect
odsazením negace CPoint
. Nakonec použijte unární operátor negovat CPoint
.
Například pomocí prvního přetížení zjistíte rozdíl mezi dvěma body CPoint(25, -19)
a CPoint(15, 5)
vrátí CSize(10, -24)
.
Odečtení od CSize
CPoint
provede stejný výpočet jako výše, ale vrátí CPoint
objekt, nikoli CSize
objekt. Například pomocí druhého přetížení zjistíte rozdíl mezi bodem CPoint(25, -19)
a velikostí CSize(15, 5)
vrátí CPoint(10, -24)
.
Odečtení obdélníku POINT
od vrácené obdélníku posunem zápornými x
hodnotami a y
hodnotami zadanými v sadě POINT
. Například pomocí posledního přetížení posun obdélníku CRect(125, 200, 325, 400)
bodem CPoint(25, -19)
vrátí CRect(100, 219, 300, 419)
.
Pomocí unárního operátoru negujte .POINT
Například použití unárního operátoru s bodem CPoint(25, -19)
vrátí CPoint(-25, 19)
.
Příklad
// 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);
Viz také
MFC – ukázka MDI
Graf hierarchie
POINT
Struktura
CRect
Třída
CSize
Třída