Udostępnij za pośrednictwem


CPoint Klasa

Podobnie jak struktura systemu Windows POINT .

Składnia

class CPoint : public tagPOINT

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CPoint::CPoint Tworzy element CPoint.

Metody publiczne

Nazwa/nazwisko opis
CPoint::Offset Dodaje wartości do elementów x i y elementu CPoint.

Operatory publiczne

Nazwa/nazwisko opis
CPoint::operator - Zwraca różnicę wartości i CPoint SIZE, lub negację POINTwartości , lub CSize różnicę między dwoma POINTs lub przesunięciem przez ujemną SIZEwartość .
CPoint::operator != Sprawdza nierówność między dwoma POINTs.
CPoint::operator + Zwraca sumę wartości CPoint i lub SIZE , lub POINTCRect przesunięcie przez SIZE.
CPoint::operator += CPoint Przesunięcia przez dodanie elementu SIZE lub POINT.
CPoint::operator -= CPoint Przesunięcia przez odjęcie wartości SIZE lub POINT.
CPoint::operator == Sprawdza równość między dwoma POINTs.

Uwagi

Zawiera również funkcje składowe do manipulowania strukturami i POINT ich manipulowaniaCPoint.

Obiekt CPoint może być używany wszędzie tam POINT , gdzie jest używana struktura. Operatory tej klasy, które współdziałają z akceptowanymi SIZE CSize obiektami lub SIZE strukturami, ponieważ te dwie klasy są wymienne.

Uwaga

Ta klasa pochodzi ze tagPOINT struktury. (Nazwa tagPOINT jest rzadziej używaną nazwą strukturyPOINT). Oznacza to, że składowe POINT danych struktury x i y, są dostępnymi elementami członkowskimi danych .CPoint

Uwaga

Aby uzyskać więcej informacji na temat udostępnionych klas narzędzi (takich jak CPoint), zobacz Klasy udostępnione.

Hierarchia dziedziczenia

tagPOINT

CPoint

Wymagania

Nagłówek: atltypes.h

CPoint::CPoint

CPoint Tworzy obiekt.

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

Parametry

initX
Określa wartość x elementu członkowskiego .CPoint

initY
Określa wartość y elementu członkowskiego .CPoint

initPt
POINT struktura lub CPoint określa wartości używane do inicjowania CPoint.

initSize
SIZE struktura lub CSize określa wartości używane do inicjowania CPoint.

dwPoint
Ustawia element członkowski x na wyraz o dwPoint niskiej kolejności i y element członkowski na wyraz o wysokiej kolejności .dwPoint

Uwagi

Jeśli nie podano argumentów, x a y elementy członkowskie są ustawione na 0.

Przykład

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

Dodaje wartości do elementów x i y elementu CPoint.

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

Parametry

xOffset
Określa kwotę przesunięcia x elementu członkowskiego .CPoint

yOffset
Określa kwotę przesunięcia y elementu członkowskiego .CPoint

point
Określa kwotę (POINT lub CPoint), aby zrównoważyć CPointwartość .

size
Określa kwotę (SIZE lub CSize), aby zrównoważyć CPointwartość .

Przykład

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 ==

Sprawdza równość między dwoma POINTs.

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

Parametry

point
POINT Zawiera strukturę lub CPoint obiekt.

Wartość zwracana

Nonzero, jeśli POINTs są równe; w przeciwnym razie 0.

Przykład

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 !=

Sprawdza nierówność między dwoma POINTs.

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

Parametry

point
POINT Zawiera strukturę lub CPoint obiekt.

Wartość zwracana

Niezerowe, jeśli POINTwartości nie są równe; w przeciwnym razie 0.

Przykład

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 +=

Pierwsze przeciążenie dodaje element SIZE do elementu CPoint.

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

Parametry

size
SIZE Zawiera strukturę lub CSize obiekt.

point
POINT Zawiera strukturę lub CPoint obiekt.

Uwagi

Drugie przeciążenie dodaje element POINT do elementu CPoint.

W obu przypadkach dodanie jest wykonywane przez dodanie x (lub cx) elementu członkowskiego operandu po prawej stronie do x elementu członkowskiego CPoint i dodanie y elementu członkowskiego (lub cy) elementu operandu po prawej stronie do y elementu członkowskiego CPoint.

Na przykład dodanie CPoint(5, -7) do zmiennej zawierającej CPoint(30, 40) zmiany zmiennej na CPoint(35, 33).

Przykład

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 -=

Pierwsze przeciążenie odejmuje element SIZE z elementu CPoint.

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

Parametry

size
SIZE Zawiera strukturę lub CSize obiekt.

point
POINT Zawiera strukturę lub CPoint obiekt.

Uwagi

Drugie przeciążenie odejmuje element POINT z elementu CPoint.

W obu przypadkach odejmowanie jest odejmowane przez odjęcie x (lub cx) elementu członkowskiego operandu po prawej stronie od x elementu członkowskiego CPoint i odejmowanie y elementu członkowskiego (lub cy) elementu operandu po prawej stronie od y elementu członkowskiego CPoint.

Na przykład odejmowanie CPoint(5, -7) ze zmiennej zawierającej CPoint(30, 40) zmiany zmiennej na CPoint(25, 47).

Przykład

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 +

Użyj tego operatora, aby zrównoważyć CPoint obiekt CPoint lub CSize , aby zrównoważyć wartość CRect przez element CPoint.

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

Parametry

size
SIZE Zawiera strukturę lub CSize obiekt.

point
POINT Zawiera strukturę lub CPoint obiekt.

lpRect
Zawiera wskaźnik do RECT struktury lub CRect obiektu.

Wartość zwracana

Element CPoint , który jest przesunięty przez SIZE, , CPoint który jest przesunięty przez POINT, lub CRect przesunięcie przez POINT.

Uwagi

Na przykład użycie jednego z dwóch pierwszych przeciążeń w celu przesunięcia punktu przez punkt CPoint(25, -19) CPoint(15, 5) lub rozmiar CSize(15, 5) zwraca wartość CPoint(40, -14).

Dodanie elementu CRect do elementu POINT zwraca CRect wartość po zrównoważeniu wartości x i y określonych w elem.POINT Na przykład użycie ostatniego przeciążenia w celu przesunięcia prostokąta CRect(125, 219, 325, 419) przez punkt CPoint(25, -19) zwraca wartość CRect(150, 200, 350, 400).

Przykład

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 -

Użyj jednego z dwóch pierwszych przeciążeń, aby odjąć CPoint obiekt lub CSize z CPoint.

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 lub CPoint obiekt.

size
Struktura SIZE lub CSize obiekt.

lpRect
Wskaźnik do RECT struktury lub CRect obiektu.

Wartość zwracana

Jest CSize to różnica między dwoma POINTs, CPoint które jest przesunięte przez negację SIZE, a CRect to jest przesunięte przez negację POINTwartości , lub , CPoint która jest negacją elementu POINT.

Uwagi

Trzecie przeciążenie przesuwa CRect element przez negację elementu CPoint. Na koniec użyj operatora jednoargumentowego, aby negować CPoint.

Na przykład użycie pierwszego przeciążenia w celu znalezienia różnicy między dwoma punktami CPoint(25, -19) i CPoint(15, 5) zwraca wartość CSize(10, -24).

Odejmowanie elementu z CPoint wykonuje to samo obliczenie CSize co powyżej, ale zwraca CPoint obiekt, a nie CSize obiekt. Na przykład użycie drugiego przeciążenia w celu znalezienia różnicy między punktem CPoint(25, -19) a rozmiarem CSize(15, 5) zwraca wartość CPoint(10, -24).

Odejmowanie prostokąta z POINT obiektu zwraca przesunięcie prostokąta przez wartości ujemne x wartości i y określone w elem.POINT Na przykład użycie ostatniego przeciążenia w celu przesunięcia prostokąta CRect(125, 200, 325, 400) przez punkt CPoint(25, -19) zwraca wartość CRect(100, 219, 300, 419).

Użyj operatora jednoargumentowego, aby negować element POINT. Na przykład użycie operatora jednoargumentowego z punktem CPoint(25, -19) zwraca wartość CPoint(-25, 19).

Przykład

// 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);   

Zobacz też

Przykładowe mdI MFC
Wykres hierarchii
POINT Struktura
CRect Klasa
CSize Klasa