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


Класс 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 члены SIZECSize) являются общедоступными. Кроме того, 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 , toprightа также 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элементов значения , toprightи 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);   

См. также

Пример MDI MFC
Диаграмма иерархии
Класс CRect
Класс CPoint