Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Как и в структуре 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 Класс