Compartilhar via


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 POINTs ou o deslocamento por um negativo SIZE.
CPoint::operator != Verifica a desigualdade entre dois POINTs.
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 POINTs.

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çalhoatltypes.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 POINTs.

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

Parâmetros

point
Contém uma estrutura POINT ou um objeto CPoint.

Valor de Devolução

Diferente de zero se os POINTs 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 POINTs.

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

Parâmetros

point
Contém uma estrutura POINT ou um objeto CPoint.

Valor de Devolução

Diferente de zero se os POINTs 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 Devolução

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 Devolução

Um CSize que é a diferença entre dois POINTs, 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 xe 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