Поделиться через


Класс CPoint

Как и в структуре POINT Windows.

Синтаксис

class CPoint : public tagPOINT

Участники

Открытые конструкторы

Имя Описание
CPoint::CPoint Создает документ CPoint.

Открытые методы

Имя Описание
CPoint::Offset Добавляет значения в x элементы и y элементы объекта CPoint.

Открытые операторы

Имя Описание
CPoint::operator - Возвращает разницу и а, или отрицание или POINTCSize разницу между двумя POINTили смещение отрицательнымSIZE.SIZECPoint
CPoint::operator != Проверяет неравенство между двумя POINT.
CPoint::operator + Возвращает сумму CPoint или CRect SIZE POINTсмещение по объекту .SIZE
CPoint::operator += Смещения путем CPoint добавления SIZE или POINT.
CPoint::operator -= Смещение CPoint путем вычитания или SIZE POINT.
CPoint::operator == Проверяет равенство между двумя POINTs.

Замечания

Она также включает функции-члены для управления CPoint и POINT структур.

Объект CPoint можно использовать везде POINT , где используется структура. Операторы этого класса, взаимодействующие с объектами SIZE или SIZE структурами, CSize поскольку они взаимозаменяемы.

Примечание.

Этот класс является производным tagPOINT от структуры. (Имя является менее часто используемым именем tagPOINT для POINT структуры.) Это означает, что члены POINT данных структуры x и yявляются доступными элементами CPointданных.

Примечание.

Дополнительные сведения о классах общих служебных программ (например, см. в разделе CPoint"Общие классы".

Иерархия наследования

tagPOINT

CPoint

Требования

Заголовок: atltypes.h

CPoint::CPoint

Формирует объект CPoint.

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

Параметры

initX
Определяет значение члена x структуры CPoint.

initY
Определяет значение члена y структуры CPoint.

initPt
POINT структура или CPoint указывает значения, используемые для инициализации CPoint.

initSize
SIZE структура или CSize указывает значения, используемые для инициализации CPoint.

dwPoint
x Задает элемент слову с низким порядком и y элементу в слове с высоким порядком dwPoint dwPoint.

Замечания

Если аргументы не указаны, для членов x и y задается значение 0.

Пример

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

Добавляет значения в x элементы и y элементы объекта CPoint.

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

Параметры

xOffset
Указывает сумму для смещения x элемента CPointэлемента.

yOffset
Указывает сумму для смещения y элемента CPointэлемента.

point
Указывает сумму (POINT или CPoint) для смещения CPoint.

size
Указывает сумму (SIZE или CSize) для смещения CPoint.

Пример

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

Проверяет равенство между двумя POINTs.

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

Параметры

point
Содержит структуру POINT или CPoint объект.

Возвращаемое значение

Ненулевое POINTзначение, если s равно; в противном случае — значение 0.

Пример

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

Проверяет неравенство между двумя POINT.

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

Параметры

point
Содержит структуру POINT или CPoint объект.

Возвращаемое значение

Ненулевое значение, если POINTоно не равно; в противном случае — значение 0.

Пример

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

Первая перегрузка добавляется SIZE в CPoint.

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

Параметры

size
Содержит структуру SIZE или CSize объект.

point
Содержит структуру POINT или CPoint объект.

Замечания

Вторая перегрузка добавляется POINT в CPoint.

В обоих случаях добавление выполняется путем добавления x (илиcx) члена правого операнда к члену CPoint и добавления y (илиcy) члена правого операнда x y к члену .CPoint

Например, добавление CPoint(5, -7) в переменную, содержащую CPoint(30, 40) изменения переменной CPoint(35, 33).

Пример

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

Первая перегрузка вычитает SIZE из CPoint.

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

Параметры

size
Содержит структуру SIZE или CSize объект.

point
Содержит структуру POINT или CPoint объект.

Замечания

Вторая перегрузка вычитает POINT из нее CPoint.

В обоих случаях вычитание выполняется путем вычитания x (илиcx) члена правого операнда из x члена и вычитания y члена CPoint правого операнда (yилиcy) из члена правого CPointоперанда.

Например, вычитание CPoint(5, -7) из переменной, содержащей CPoint(30, 40) изменения переменной CPoint(25, 47)на .

Пример

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 +

Используйте этот оператор для смещения CPoint по CPoint объекту или CSize объекту или для смещения CRect по объекту CPoint.

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

Параметры

size
Содержит структуру SIZE или CSize объект.

point
Содержит структуру POINT или CPoint объект.

lpRect
Содержит указатель на структуру RECT или CRect объект.

Возвращаемое значение

Смещение CPoint по объекту , CPoint которое смещается SIZEпо POINTобъекту или CRect смещениемPOINT.

Замечания

Например, использование одной из первых двух перегрузок для смещения точки на точку CPoint(25, -19) CPoint(15, 5) или размер CSize(15, 5) возвращает значение CPoint(40, -14).

Добавление в CRect POINT возвращаемое CRect значение после смещения по значениям x , y указанным в параметре POINT. Например, использование последней перегрузки для смещения прямоугольника CRect(125, 219, 325, 419) по возвращаемой CRect(150, 200, 350, 400)точкеCPoint(25, -19).

Пример

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 -

Используйте одну из первых двух перегрузок для вычитания CPoint объекта или CSize объекта.CPoint

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

Параметры

point
POINT Структура или CPoint объект.

size
SIZE Структура или CSize объект.

lpRect
Указатель на RECT структуру или CRect объект.

Возвращаемое значение

То CSize есть разница между двумя POINTs, CPoint то есть смещением от отрицания , CRect то есть смещением от отрицания SIZEили POINTCPoint отрицания.POINT

Замечания

Третья перегрузка смещает CRect отрицание CPoint. Наконец, используйте унарный оператор для отмены CPoint.

Например, при использовании первой перегрузки для поиска разницы между двумя точками CPoint(25, -19) и CPoint(15, 5) возвращается CSize(10, -24).

Вычитание CSize CPoint из нее выполняет то же вычисление, что и выше, но возвращает CPoint объект, а не CSize объект. Например, при использовании второй перегрузки для поиска разницы между точкой CPoint(25, -19) и размером CSize(15, 5) возвращается CPoint(10, -24).

Вычитание прямоугольника из POINT прямоугольника возвращает смещение прямоугольника отрицательными значениями x , y указанными в элементе POINT. Например, использование последней перегрузки для смещения прямоугольника CRect(125, 200, 325, 400) по точке CPoint(25, -19) возвращается CRect(100, 219, 300, 419).

Используйте унарный оператор для отмены POINT. Например, использование унарного оператора с возвращаемой CPoint(-25, 19)точкойCPoint(25, -19).

Пример

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

См. также

Пример MDI MFC
Диаграмма иерархии
POINT Структура
CRect Класс
CSize Класс