Класс CSize
Аналог структуры SIZE в ОС Windows, реализующий относительные координаты или положение.
Синтаксис
class CSize : public tagSIZE
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CSize::CSize | Формирует объект CSize . |
Открытые операторы
Имя | Описание |
---|---|
CSize::operator — | Вычитает два размера. |
CSize::operator != | Проверяет неравенство между CSize размером и размером. |
CSize::operator + | Добавляет два размера. |
CSize::operator += | Добавляет размер CSize в . |
CSize::operator -= | Вычитает размер из CSize . |
CSize::operator == | Проверяет равенство между CSize и размером. |
Замечания
Этот класс является производным SIZE
от структуры. Это означает, что вы можете передать CSize
параметр, вызывающий SIZE
вызовы, и что члены SIZE
данных структуры являются доступными CSize
элементами данных.
cy
И cx
члены SIZE
(иCSize
) являются общедоступными. Кроме того, CSize
реализует функции-члены для управления структурой SIZE
.
Примечание.
Дополнительные сведения о классах общих служебных программ (например, см. в разделе CSize
"Общие классы".
Иерархия наследования
tagSIZE
CSize
Требования
Заголовок: atltypes.h
CSize::CSize
Формирует объект CSize
.
CSize() throw();
CSize( int initCX, int initCY) throw();
CSize( SIZE initSize) throw();
CSize( POINT initPt) throw();
CSize( DWORD dwSize) throw();
Параметры
initCX
cx
Задает элемент для CSize
элемента.
initCY
cy
Задает элемент для CSize
элемента.
initSize
Структура или объект SIZE, используемые для инициализацииCSize
.CSize
initPt
Структура CPoint
или объект POINT, используемые для инициализацииCSize
.
dwSize
DWORD, используемый для инициализации CSize
. Слово с низким порядком является элементом cx
, и слово высокого порядка является элементом cy
.
Замечания
Если аргументы не заданы, cx
и инициализированы cy
до нуля.
Пример
CSize szEmpty;
CSize szPointA(10, 25);
SIZE sz;
sz.cx = 10;
sz.cy = 25;
CSize szPointB(sz);
POINT pt;
pt.x = 10;
pt.y = 25;
CSize szPointC(pt);
CPoint ptObject(10, 25);
CSize szPointD(ptObject);
DWORD dw = MAKELONG(10, 25);
CSize szPointE(dw);
ASSERT(szPointA == szPointB);
ASSERT(szPointB == szPointC);
ASSERT(szPointC == szPointD);
ASSERT(szPointD == szPointE);
CSize::operator ==
Проверяет равенство между двумя размерами.
BOOL operator==(SIZE size) const throw();
Замечания
Возвращает ненулевое значение, если размеры равны, otherwize 0.
Пример
CSize sz1(135, 135);
CSize sz2(135, 135);
ASSERT(sz1 == sz2);
CSize::operator !=
Проверяет неравенство между двумя размерами.
BOOL operator!=(SIZE size) const throw();
Замечания
Возвращает ненулевое значение, если размеры не равны, в противном случае — значение 0.
Пример
CSize sz1(222, 222);
CSize sz2(111, 111);
ASSERT(sz1 != sz2);
CSize::operator +=
Добавляет к этому CSize
размер.
void operator+=(SIZE size) throw();
Пример
CSize sz1(100, 100);
CSize sz2(50, 25);
sz1 += sz2;
CSize szResult(150, 125);
ASSERT(sz1 == szResult);
// works with SIZE, too
sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;
sz1 += sz3;
ASSERT(sz1 == szResult);
CSize::operator -=
Вычитает размер из этого CSize
.
void operator-=(SIZE size) throw();
Пример
CSize sz1(100, 100);
CSize sz2(50, 25);
sz1 -= sz2;
CSize szResult(50, 75);
ASSERT(sz1 == szResult);
// works with SIZE, too
sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;
sz1 -= sz3;
ASSERT(sz1 == szResult);
CSize::operator +
Эти операторы добавляют это CSize
значение в значение параметра.
CSize operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();
Замечания
См. следующие описания отдельных операторов:
оператор +( размер )
Эта операция добавляет два
CSize
значения.оператор +( точка )
Эта операция смещает (перемещает) значение POINT (или CPoint) по этому
CSize
значению. Элементыcx
этогоCSize
значения добавляются вx
элементы иy
элементыPOINT
данных значения.cy
Он аналогичен версии CPoint::operator + с параметром SIZE .оператор +( lpRect )
Эта операция смещает (перемещает) значение RECT (или CRect) по этому
CSize
значению. Элементыcx
этогоCSize
значения добавляются вleft
элементы значенийRECT
,top
right
а такжеbottom
элементы данных.cy
Он аналогичен версии CRect::operator + , которая принимает параметр SIZE .
Пример
CSize sz1(100, 100);
CSize sz2(50, 25);
CSize szOut;
szOut = sz1 + sz2;
CSize szResult(150, 125);
ASSERT(szOut == szResult);
// works with SIZE, too
sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;
szOut = sz1 + sz3;
ASSERT(szOut == szResult);
CSize::operator —
Первые три из этих операторов вычитают это CSize
значение в значение параметра.
CSize operator-(SIZE size) const throw();
CPoint operator-(POINT point) const throw();
CRect operator-(const RECT* lpRect) const throw();
CSize operator-() const throw();
Замечания
Четвертый оператор, унарный минус, изменяет знак CSize
значения. См. следующие описания отдельных операторов:
оператор -( размер )
Эта операция вычитает два
CSize
значения.оператор -( точка )
Эта операция смещает (перемещает) значение POINT или CPoint с помощью аддитивного обратного значения
CSize
.cy
Значениеcx
и из этогоCSize
значения вычитаются изx
y
элементовPOINT
данных значения. Это аналогично версии CPoint::operator, которая принимает параметр SIZE .оператор -( lpRect )
Эта операция смещает (перемещает) значение RECT или CRect с помощью аддитивного обратного
CSize
значения. Элементыcx
этогоcy
CSize
значения вычитаются изleft
элементов значения ,top
right
иbottom
элементовRECT
данных. Он аналогичен версии CRect::operator, которая принимает параметр SIZE .оператор -()
Эта операция возвращает аддитивное обратное значение этого
CSize
значения.
Пример
CSize sz1(100, 100);
CSize sz2(50, 25);
CSize szOut;
szOut = sz1 - sz2;
CSize szResult(50, 75);
ASSERT(szOut == szResult);
// works with SIZE, too
sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;
szOut = sz1 - sz3;
ASSERT(szOut == szResult);