Compartir a través de


Clase CPoint

Similar a la estructura POINT de Windows.

Sintaxis

class CPoint : public tagPOINT

Miembros

Constructores públicos

Nombre Descripción
CPoint::CPoint Construye un objeto CPoint.

Métodos públicos

Nombre Descripción
CPoint::Offset Agrega valores a los miembros x y y de CPoint.

Operadores públicos

Nombre Descripción
CPoint::operator - Devuelve la diferencia de un objeto CPoint y un objeto SIZE; la negación de un POINT; la diferencia de CSize entre dos objetos POINT, o el desplazamiento por un objeto SIZE negativo.
CPoint::operator != Comprueba si hay desigualdad entre dos objetos POINT.
CPoint::operator + Devuelve la suma de CPoint y SIZE, o POINT, o un desplazamiento CRect por un SIZE.
CPoint::operator += Desplaza CPoint sumando SIZE o POINT.
CPoint::operator -= Desplaza CPoint restando SIZE o POINT.
CPoint::operator == Comprueba si hay igualdad entre dos objetos POINT.

Comentarios

También incluye funciones miembro para manipular CPoint y estructuras POINT.

Un objeto CPoint se puede usar siempre que se use una estructura POINT. Los operadores de esta clase que interactúan con SIZE aceptan objetos CSize o estructuras SIZE, ya que los dos son intercambiables.

Nota:

Esta clase se deriva de la estructura tagPOINT. (el nombre tagPOINT es un nombre que se usa con menos frecuencia para la estructura POINT). Esto significa que los miembros de datos de la estructura POINT, x y y son miembros de datos accesibles de CPoint.

Nota:

Para más información sobre las clases de utilidad compartidas (como CPoint), vea Clases compartidas.

Jerarquía de herencia

tagPOINT

CPoint

Requisitos

Encabezado: atltypes.h

CPoint::CPoint

Construye un objeto CPoint.

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

Parámetros

initX
Especifique el valor del miembro x de CPoint.

initY
Especifique el valor del miembro y de CPoint.

initPt
Estructura POINT o CPoint que especifica los valores utilizados para inicializar CPoint.

initSize
Estructura SIZE o CSize que especifica los valores utilizados para inicializar CPoint.

dwPoint
Establece el miembro x en la palabra de orden inferior de dwPoint y el miembro y en la palabra de orden superior de dwPoint.

Comentarios

Si no se proporcionan argumentos, los miembros x e y se establecen en 0.

Ejemplo

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

Agrega valores a los miembros x y y de CPoint.

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

Parámetros

xOffset
Especifica la cantidad que el miembro x de CPoint va a desplazarse.

yOffset
Especifica la cantidad que el miembro y de CPoint va a desplazarse.

point
Especifica la cantidad (POINT o CPoint) que CPoint va a desplazarse.

size
Especifica la cantidad (SIZE o CSize) que CPoint va a desplazarse.

Ejemplo

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

Comprueba si hay igualdad entre dos objetos POINT.

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

Parámetros

point
Contiene una estructura POINT o un objeto CPoint.

Valor devuelto

Distinto de cero si los objetos POINT son iguales; en caso contrario, 0.

Ejemplo

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

Comprueba si hay desigualdad entre dos objetos POINT.

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

Parámetros

point
Contiene una estructura POINT o un objeto CPoint.

Valor devuelto

Distinto de cero si los objetos POINT no son iguales; en caso contrario, 0.

Ejemplo

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

La primera sobrecarga suma un objeto SIZE a CPoint.

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

Parámetros

size
Contiene una estructura SIZE o un objeto CSize.

point
Contiene una estructura POINT o un objeto CPoint.

Comentarios

La segunda sobrecarga suma un objeto POINT a CPoint.

En ambos casos, la suma se realiza sumando el miembro x (o cx) del operando derecho al miembro x de CPoint, y sumando el miembro y (o cy) del operando derecho al miembro y de CPoint.

Por ejemplo, si CPoint(5, -7) se suma a una variable que contiene CPoint(30, 40), la variable cambia a CPoint(35, 33).

Ejemplo

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

La primera sobrecarga resta SIZE de CPoint.

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

Parámetros

size
Contiene una estructura SIZE o un objeto CSize.

point
Contiene una estructura POINT o un objeto CPoint.

Comentarios

La segunda sobrecarga resta POINT de CPoint.

En ambos casos, la resta se realiza restando el miembro x (o cx) del operando derecho del miembro x de CPoint y restando el miembro y (o cy) del operando derecho del miembro y de CPoint.

Por ejemplo, si CPoint(5, -7) se resta de una variable que contiene CPoint(30, 40), la variable cambia a CPoint(25, 47).

Ejemplo

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 +

Utilice este operador para desplazar CPoint según un objeto CPoint o un objeto CSize, o para desplazar un objeto CRect según un objeto CPoint.

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

Parámetros

size
Contiene una estructura SIZE o un objeto CSize.

point
Contiene una estructura POINT o un objeto CPoint.

lpRect
Contiene un puntero a una estructura RECT o a un objeto CRect.

Valor devuelto

Un objeto CPoint que se desplaza según un objeto SIZE; un objeto CPoint que se desplaza según un objeto POINT, o un desplazamiento de CRect según un objeto POINT.

Comentarios

Por ejemplo, el uso de una de las dos primeras sobrecargas para desplazar el punto CPoint(25, -19) según un punto CPoint(15, 5) o un tamaño CSize(15, 5) devuelve el valor CPoint(40, -14).

Sumar un objeto CRect a un objeto POINT devuelve el objeto CRect después de haberse desplazado según los valores x y y especificados en POINT. Por ejemplo, el uso de la última sobrecarga para desplazar un rectángulo CRect(125, 219, 325, 419) según un punto CPoint(25, -19) devuelve CRect(150, 200, 350, 400).

Ejemplo

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 -

Use una de las dos primeras sobrecargas para restar un objeto CPoint o CSize de CPoint.

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

Parámetros

point
Estructura POINT u objeto CPoint.

size
Estructura SIZE u objeto CSize.

lpRect
Puntero a una estructura RECT o a un objeto CRect.

Valor devuelto

Objeto CSize que es la diferencia entre dos objetos POINT; un objeto CPoint que se desplaza según la negación de un objeto SIZE; un objeto CRect que se desplaza según la negación de un objeto POINT, o un objeto CPoint que es la negación de POINT.

Comentarios

La tercera sobrecarga desplaza un objeto CRect según la negación de CPoint. Por último, use el operador unario para negar CPoint.

Por ejemplo, el uso de la primera sobrecarga para hallar la diferencia entre dos puntos CPoint(25, -19) y CPoint(15, 5) devuelve CSize(10, -24).

Restar un objeto CSize de CPoint efectúa el mismo cálculo que antes, pero devuelve un objeto CPoint, no un objeto CSize. Por ejemplo, el uso de la segunda sobrecarga para hallar la diferencia entre el punto CPoint(25, -19) y el tamaño CSize(15, 5) devuelve CPoint(10, -24).

Restar un rectángulo de un objeto POINT devuelve el desplazamiento del rectángulo según los negativos de los valores de x y y especificados en POINT. Por ejemplo, el uso de la última sobrecarga para desplazar un rectángulo CRect(125, 200, 325, 400) según un punto CPoint(25, -19) devuelve CRect(100, 219, 300, 419).

Use el operador unario para negar POINT. Por ejemplo, el uso del operador unario con el punto CPoint(25, -19) devuelve CPoint(-25, 19).

Ejemplo

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

Vea también

Ejemplo MDI de MFC
Gráfico de jerarquías
POINT (Estructura)
CRect (clase)
CSize (clase)