Класс CPoint
Как и в структуре POINT
Windows.
Синтаксис
class CPoint : public tagPOINT
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CPoint::CPoint |
Создает документ CPoint . |
Открытые методы
Имя | Описание |
---|---|
CPoint::Offset |
Добавляет значения в x элементы и y элементы объекта CPoint . |
Открытые операторы
Имя | Описание |
---|---|
CPoint::operator - |
Возвращает разницу и а, или отрицание или POINT CSize разницу между двумя POINT или смещение отрицательнымSIZE .SIZE CPoint |
CPoint::operator != |
Проверяет неравенство между двумя POINT . |
CPoint::operator + |
Возвращает сумму CPoint или CRect SIZE POINT смещение по объекту .SIZE |
CPoint::operator += |
Смещения путем CPoint добавления SIZE или POINT . |
CPoint::operator -= |
Смещение CPoint путем вычитания или SIZE POINT . |
CPoint::operator == |
Проверяет равенство между двумя POINT s. |
Замечания
Она также включает функции-члены для управления 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 ==
Проверяет равенство между двумя POINT
s.
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
есть разница между двумя POINT
s, CPoint
то есть смещением от отрицания , CRect
то есть смещением от отрицания SIZE
или POINT
CPoint
отрицания.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
Класс