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ę POINT wartości , lub CSize różnicę między dwoma POINT s lub przesunięciem przez ujemną SIZE wartość . |
CPoint::operator != |
Sprawdza nierówność między dwoma POINT s. |
CPoint::operator + |
Zwraca sumę wartości CPoint i lub SIZE , lub POINT CRect 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 POINT s. |
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ć CPoint
wartość .
size
Określa kwotę (SIZE
lub CSize
), aby zrównoważyć CPoint
wartość .
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 POINT
s.
BOOL operator==(POINT point) const throw();
Parametry
point
POINT
Zawiera strukturę lub CPoint
obiekt.
Wartość zwracana
Nonzero, jeśli POINT
s 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 POINT
s.
BOOL operator!=(POINT point) const throw();
Parametry
point
POINT
Zawiera strukturę lub CPoint
obiekt.
Wartość zwracana
Niezerowe, jeśli POINT
wartoś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 POINT
s, CPoint
które jest przesunięte przez negację SIZE
, a CRect
to jest przesunięte przez negację POINT
wartoś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