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


Класс 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элементами данных.

cx И cy члены 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.

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

Замечания

Возвращает ненулевое значение, если размеры равны, в противном случае — значение 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 этого cy значения добавляются в CSize элементы и x элементы y данных значения.POINT Он аналогичен версии CPoint::operator + с параметром SIZE .

  • оператор +( lpRect)

    Эта операция смещает (перемещает) значение RECT (или CRect) по этому CSize значению. Элементы cx этого cy значения добавляются в CSizeэлементы значений left , toprightа также bottom элементы данных.RECT Он аналогичен версии 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 . cx Значение cy и из этого CSize значения вычитаются из xy элементов POINT данных значения. Это аналогично версии CPoint::operator, которая принимает параметр SIZE .

  • оператор -( lpRect)

    Эта операция смещает (перемещает) значение RECT или CRect с помощью аддитивного обратного CSize значения. Элементы cx этого cyCSize значения вычитаются из 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