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)