Classe CPoint
Semelhante à estrutura POINT
do Windows.
Sintaxe
class CPoint : public tagPOINT
Membros
Construtores públicos
Nome | Descrição |
---|---|
CPoint::CPoint |
Constrói um CPoint . |
Métodos públicos
Nome | Descrição |
---|---|
CPoint::Offset |
Adiciona valores aos membros x e y ao CPoint . |
Operadores públicos
Nome | Descrição |
---|---|
CPoint::operator - |
Retorna a diferença de um CPoint e um SIZE , ou a negação de um POINT , ou a CSize diferença entre dois POINT s ou o deslocamento por um negativo SIZE . |
CPoint::operator != |
Verifica a desigualdade entre dois POINT s. |
CPoint::operator + |
Retorna a soma de um CPoint e um SIZE ou POINT , ou um deslocamento de CRect por um SIZE . |
CPoint::operator += |
Desloca CPoint adicionando um SIZE ou POINT . |
CPoint::operator -= |
Desloca CPoint subtraindo um SIZE ou POINT . |
CPoint::operator == |
Verifica se há igualdade entre dois POINT s. |
Comentários
Também inclui funções de membro para manipular estruturas CPoint
e POINT
.
Um objeto CPoint
pode ser usado sempre que uma estrutura POINT
é usada. Os operadores dessa classe que interagem com um SIZE
aceitam objetos CSize
ou estruturas SIZE
, já que os dois são intercambiáveis.
Observação
Essa classe é derivada da estrutura tagPOINT
. (O nome tagPOINT
é um nome menos usado para a estrutura POINT
.) Isso significa que os membros de dados da estrutura POINT
, x
e y
são membros de dados acessíveis de CPoint
.
Observação
Para mais informações sobre classes de utilitário compartilhado (como CPoint
), confira Classes compartilhadas.
Hierarquia de herança
tagPOINT
CPoint
Requisitos
Cabeçalho: atltypes.h
CPoint::CPoint
Constrói um 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
Especifica o valor do membro x
de CPoint
.
initY
Especifica o valor do membro y
de CPoint
.
initPt
A estrutura POINT
ou CPoint
que especifica os valores usados para inicializar CPoint
.
initSize
A estrutura SIZE
ou CSize
que especifica os valores usados para inicializar CPoint
.
dwPoint
Define o membro x
como a palavra de ordem inferior de dwPoint
e o membro y
como a palavra de ordem superior de dwPoint
.
Comentários
Se nenhum argumento for fornecido, os membros x
e y
serão definidos como 0.
Exemplo
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
Adiciona valores aos membros x
e y
ao CPoint
.
void Offset(int xOffset, int yOffset) throw();
void Offset(POINT point) throw();
void Offset(SIZE size) throw();
Parâmetros
xOffset
Especifica o valor para deslocar o membro x
de CPoint
.
yOffset
Especifica o valor para deslocar o membro y
de CPoint
.
point
Especifica o valor (POINT
ou CPoint
) para deslocar CPoint
.
size
Especifica o valor (SIZE
ou CSize
) para deslocar CPoint
.
Exemplo
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 ==
Verifica se há igualdade entre dois POINT
s.
BOOL operator==(POINT point) const throw();
Parâmetros
point
Contém uma estrutura POINT
ou um objeto CPoint
.
Valor de retorno
Diferente de zero se os POINT
s forem iguais; caso contrário, 0.
Exemplo
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 !=
Verifica a desigualdade entre dois POINT
s.
BOOL operator!=(POINT point) const throw();
Parâmetros
point
Contém uma estrutura POINT
ou um objeto CPoint
.
Valor de retorno
Diferente de zero se os POINT
s não forem iguais; caso contrário, 0.
Exemplo
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 +=
A primeira sobrecarga adiciona um SIZE
ao CPoint
.
void operator+=(SIZE size) throw();
void operator+=(POINT point) throw();
Parâmetros
size
Contém uma estrutura SIZE
ou um objeto CSize
.
point
Contém uma estrutura POINT
ou um objeto CPoint
.
Comentários
A segunda sobrecarga adiciona um POINT
ao CPoint
.
Em ambos os casos, a adição é feita adicionando membro x
(ou cx
) do operando à direita ao x
membro do CPoint
e adicionando o membro y
(ou cy
) do operando à direita ao membro y
do CPoint
.
Por exemplo, adicionar CPoint(5, -7)
a uma variável que contém CPoint(30, 40)
altera a variável para CPoint(35, 33)
.
Exemplo
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 -=
A primeira sobrecarga subtrai um SIZE
de CPoint
.
void operator-=(SIZE size) throw();
void operator-=(POINT point) throw();
Parâmetros
size
Contém uma estrutura SIZE
ou um objeto CSize
.
point
Contém uma estrutura POINT
ou um objeto CPoint
.
Comentários
A segunda sobrecarga subtrai um POINT
de CPoint
.
Em ambos os casos, a subtração é feita subtraindo o membro x
(ou cx
) membro do operando à direita do x
membro do CPoint
e subtraindo o y
(ou cy
) membro do operando à direita do membro y
do CPoint
.
Por exemplo, subtrair CPoint(5, -7)
de uma variável que contém CPoint(30, 40)
altera a variável para CPoint(25, 47)
.
Exemplo
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 +
Use esse operador para compensar CPoint
por um objeto CPoint
ou CSize
para compensar um CRect
por um CPoint
.
CPoint operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();
Parâmetros
size
Contém uma estrutura SIZE
ou um objeto CSize
.
point
Contém uma estrutura POINT
ou um objeto CPoint
.
lpRect
Converte um ponteiro em uma estrutura RECT
ou um objeto CRect
.
Valor de retorno
Um CPoint
que é deslocado por um SIZE
, um CPoint
que é deslocado por um POINT
ou um CRect
deslocado por um POINT
.
Comentários
Por exemplo, usar uma das duas primeiras sobrecargas para compensar o ponto CPoint(25, -19)
por um ponto CPoint(15, 5)
ou tamanho CSize(15, 5)
retorna o valor CPoint(40, -14)
.
A adição de um CRect
a um POINT
retorna CRect
após ser deslocado pelos valores x
e y
especificados em POINT
. Por exemplo, usar a última sobrecarga para compensar um retângulo CRect(125, 219, 325, 419)
por um ponto CPoint(25, -19)
retorna CRect(150, 200, 350, 400)
.
Exemplo
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 uma das duas primeiras sobrecargas para subtrair um objeto CPoint
ou 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
Uma estrutura POINT
ou objeto CPoint
.
size
Uma estrutura SIZE
ou objeto CSize
.
lpRect
Um ponteiro para uma estrutura RECT
ou um objeto CRect
.
Valor de retorno
Um CSize
que é a diferença entre dois POINT
s, uma CPoint
que é compensada pela negação de um SIZE
, um CRect
que é deslocado pela negação de um POINT
ou um CPoint
que é a negação de um POINT
.
Comentários
A terceira sobrecarga desloca um CRect
pela negação de CPoint
. Por fim, use o operador unário para negar CPoint
.
Por exemplo, usando a primeira sobrecarga para encontrar a diferença entre dois pontos CPoint(25, -19)
e CPoint(15, 5)
retorna CSize(10, -24)
.
A subtração de um CSize
de CPoint
faz o mesmo cálculo que acima, mas retorna um objeto CPoint
, não um objeto CSize
. Por exemplo, usar a segunda sobrecarga para encontrar a diferença entre o ponto CPoint(25, -19)
e o tamanho CSize(15, 5)
retorna CPoint(10, -24)
.
Subtrair um retângulo de um POINT
retorna o deslocamento do retângulo pelos negativos dos valores x
e y
especificados em POINT
. Por exemplo, usar a última sobrecarga para deslocar o retângulo CRect(125, 200, 325, 400)
pelo ponto CPoint(25, -19)
retorna CRect(100, 219, 300, 419)
.
Use o operador unário para negar um POINT
. Por exemplo, usar o operador unário com o ponto CPoint(25, -19)
retorna CPoint(-25, 19)
.
Exemplo
// 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);
Confira também
MDI de exemplo do MFC
Gráfico da hierarquia
Estrutura POINT
Classe CRect
Classe CSize