Freigeben über


CPoint-Klasse

Ähnlich der Windows-Struktur POINT .

Syntax

class CPoint : public tagPOINT

Member

Öffentliche Konstruktoren

Name Beschreibung
CPoint::CPoint Erstellt ein Objekt vom Typ CPoint.

Öffentliche Methoden

Name Beschreibung
CPoint::Offset Addiert Werte zu den x Und y Membern der CPoint.

Öffentliche Operatoren

Name Beschreibung
CPoint::operator - Gibt die Differenz einer und einer CPoint SIZE, oder der Negation eines POINT, oder der CSize Differenz zwischen zwei POINTs oder dem Offset durch ein negatives SIZEzurück.
CPoint::operator != Sucht nach Ungleichheiten zwischen zwei POINTs.
CPoint::operator + Gibt die Summe einer und eines CPoint oder POINToder SIZE eines CRect Offsets um ein SIZE.
CPoint::operator += Versetzt durch CPoint Hinzufügen eines SIZE oder .POINT
CPoint::operator -= Offsets CPoint durch Subtrahieren eines SIZE oder POINT.
CPoint::operator == Überprüft die Gleichheit zwischen zwei POINTs.

Hinweise

Sie umfasst auch Memberfunktionen zum Bearbeiten und POINT StrukturierenCPoint.

Ein CPoint Objekt kann überall verwendet werden, wo eine POINT Struktur verwendet wird. Die Operatoren dieser Klasse, die mit einem SIZE Akzeptieren von CSize Objekten oder SIZE Strukturen interagieren, da die beiden austauschbar sind.

Hinweis

Diese Klasse wird von der tagPOINT Struktur abgeleitet. (Der Name ist ein weniger häufig verwendeter Name tagPOINT für die POINT Struktur.) Dies bedeutet, dass die Datenmmber der POINT Struktur x und yzugängliche Datenmmber von CPoint.

Hinweis

Weitere Informationen zu freigegebenen Hilfsprogrammklassen (z CPoint. B. ) finden Sie unter "Freigegebene Klassen".

Vererbungshierarchie

tagPOINT

CPoint

Anforderungen

Header: atltypes.h

CPoint::CPoint

Erstellt ein CPoint-Objekt.

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

Parameter

initX
Gibt den Wert des x-Members von CPoint an.

initY
Gibt den Wert des y-Members von CPoint an.

initPt
POINT struktur oder CPoint der die Werte angibt, die zum Initialisieren CPointverwendet werden.

initSize
SIZE struktur oder CSize der die Werte angibt, die zum Initialisieren CPointverwendet werden.

dwPoint
Legt das x Element auf das Wort dwPoint mit niedriger Reihenfolge und das y Element auf das Wort mit hoher Reihenfolge fest.dwPoint

Hinweise

Wenn keine Argumente angegeben werden, werden die x- und y-Member auf 0 festgelegt.

Beispiel

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

Addiert Werte zu den x Und y Membern der CPoint.

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

Parameter

xOffset
Gibt den Betrag an, der das x Element des Elements CPointversetzt werden soll.

yOffset
Gibt den Betrag an, der das y Element des Elements CPointversetzt werden soll.

point
Gibt den Betrag (POINT oder CPoint) an, der versetzt werden CPointsoll.

size
Gibt den Betrag (SIZE oder CSize) an, der versetzt werden CPointsoll.

Beispiel

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

Überprüft die Gleichheit zwischen zwei POINTs.

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

Parameter

point
Enthält eine Struktur oder CPoint ein POINT Objekt.

Rückgabewert

Nonzero, wenn die POINTs gleich sind; andernfalls 0.

Beispiel

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

Sucht nach Ungleichheiten zwischen zwei POINTs.

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

Parameter

point
Enthält eine Struktur oder CPoint ein POINT Objekt.

Rückgabewert

Nonzero, wenn dies POINTnicht gleich ist; andernfalls 0.

Beispiel

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

Die erste Überladung fügt der SIZE CPoint.

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

Parameter

size
Enthält eine Struktur oder CSize ein SIZE Objekt.

point
Enthält eine Struktur oder CPoint ein POINT Objekt.

Hinweise

Die zweite Überladung fügt der POINT CPoint.

In beiden Fällen erfolgt das Hinzufügen des x (oder cx) Members des rechten Operanden zum x Element des und Hinzufügen y des CPoint (oder cy) Members des rechten Operanden zum y Element des Elements der CPointrechten Seite.

So wird beispielsweise eine Variable hinzugefügt, CPoint(5, -7) die die Variable CPoint(35, 33)enthältCPoint(30, 40).

Beispiel

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

Die erste Überladung subtrahiert eine SIZE von der CPoint.

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

Parameter

size
Enthält eine Struktur oder CSize ein SIZE Objekt.

point
Enthält eine Struktur oder CPoint ein POINT Objekt.

Hinweise

Die zweite Überladung subtrahiert eine POINT von der CPoint.

In beiden Fällen wird Subtraktion durch Subtrahieren des x (oder cx) Members des rechten Operanden vom x Element des CPoint und Subtrahieren y des (oder cy) Members des rechten Operanden vom Element des rechten CPointOperanden .y

Subtrahieren CPoint(5, -7) von einer Variablen, die die Variable CPoint(25, 47)enthältCPoint(30, 40), z. B. in .

Beispiel

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 +

Verwenden Sie diesen Operator, um ein CPoint Objekt CSize oder ein Objekt zu versatzen oder um ein CRect Objekt CPointzu versatzenCPoint.

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

Parameter

size
Enthält eine Struktur oder CSize ein SIZE Objekt.

point
Enthält eine Struktur oder CPoint ein POINT Objekt.

lpRect
Enthält einen Zeiger auf eine Struktur oder CRect ein RECT Objekt.

Rückgabewert

Ein CPoint Offset durch ein SIZE, ein , das CPoint durch ein POINToder einen CRect Offset durch ein POINT.

Hinweise

Wenn Sie beispielsweise eine der ersten beiden Überladungen verwenden, um den Punkt CPoint(25, -19) um einen Punkt CPoint(15, 5) oder eine Größe CSize(15, 5) zu verrechnen, wird der Wert CPoint(40, -14)zurückgegeben.

Beim Hinzufügen eines Werts CRect zu einem POINT Wert wird der CRect Wert zurückgegeben, der nach dem Offset durch die in der POINTx Datei angegebenen Werte y zurückgegeben wird. Wenn Sie z. B. die letzte Überladung verwenden, um ein Rechteck CRect(125, 219, 325, 419) um einen Punkt CPoint(25, -19) zu versatz, wird zurückgegeben CRect(150, 200, 350, 400).

Beispiel

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 -

Verwenden Sie eine der ersten beiden Überladungen, um ein CPoint oder CSize ein Objekt von CPoint.

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

Parameter

point
Eine Struktur oder CPoint ein POINT Objekt.

size
Eine Struktur oder CSize ein SIZE Objekt.

lpRect
Ein Zeiger auf eine RECT Struktur oder ein CRect Objekt.

Rückgabewert

A CSize that is the difference between two POINTs, a CPoint that is offset by the negation of a SIZE, a CRect that is offset by the negation of a POINT, or a CPoint that is the negation of a POINT.

Hinweise

Die dritte Überladung versetzt eine CRect durch die Negation von CPoint. Verwenden Sie schließlich den unären Operator, um dies CPointzu verwerfen.

Verwenden Sie z. B. die erste Überladung, um den Unterschied zwischen zwei Punkten CPoint(25, -19) zu finden und CPoint(15, 5) gibt zurück CSize(10, -24).

Das Subtrahieren eines CSize From-Objekts CPoint führt dieselbe Berechnung wie oben aus, gibt aber ein CPoint Objekt zurück, nicht ein CSize Objekt. Verwenden Sie beispielsweise die zweite Überladung, um den Unterschied zwischen dem Punkt CPoint(25, -19) und der Größe CSize(15, 5) zu CPoint(10, -24)ermitteln.

Subtrahieren eines Rechtecks von einem POINT Gibt den Rechteckoffset durch die Negativen der x in der POINTZeichenfolge angegebenen Werte zurücky. Wenn Sie beispielsweise die letzte Überladung verwenden, um das Rechteck CRect(125, 200, 325, 400) um den Punkt CPoint(25, -19) zu versatzen, wird zurückgegeben CRect(100, 219, 300, 419).

Verwenden Sie den unären Operator, um ein POINT. Verwenden Sie z. B. den unären Operator mit dem Punkt CPoint(25, -19) zurück CPoint(-25, 19).

Beispiel

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

Siehe auch

MFC-Beispiel-MDI
Hierarchiediagramm
POINT Struktur
CRect Klasse
CSize Klasse