Sdílet prostřednictvím


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 , SIZEnebo negace POINTnebo CSize rozdíl mezi dvěma POINTs, nebo posun záporným SIZE.
CPoint::operator != Kontroluje nerovnost mezi dvěma POINTs.
CPoint::operator + Vrátí součet a CPoint SIZE nebo POINTCRect nebo posun o SIZEhodnotu .
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 POINTs.

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 yjsou 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
POINTCPoint nebo určuje hodnoty použité k inicializaci CPoint.

initSize
SIZECSize 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 dwPoints 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 POINTs.

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 POINTs.

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

Parametry

point
POINT Obsahuje strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud POINTse 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 cxx CPoint y cyy 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 POINTo .

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 CPointjedno 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 POINTs, CPoint který je posunem negacem SIZE, CRect který je posunut negací negace , POINTnebo 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