CSize 类

类似于实现相对坐标或位置的 Windows SIZE 结构。

语法

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 的可访问的数据成员。

SIZE(和 CSize)的 cxcy 成员是公开的。 此外, 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
设置 CSizecx 成员。

initCY
设置 CSizecy 成员。

initSize
用于初始化 CSizeSIZE 结构或 CSize 对象。

initPt
用于初始化 CSizePOINT 结构或 CPoint 对象。

dwSize
用于初始化 CSize 的 DWORD。 低序单词是 cx 成员,高阶单词是 cy 成员。

备注

如果未提供任何参数, cxcy 初始化为零。

示例

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

备注

请参阅各个运算符的以下说明:

  • 运算符 +(size)

    此操作添加两个 CSize 值。

  • 运算符 +(point)

    此操作将按照 CSize 值偏移(移动)POINT(或 CPoint)值。 此值 CSizecxcy 成员添加到 POINT 值的 xy 数据成员。 它类似于采用 SIZE 参数的 CPoint::operator + 版本。

  • 运算符 +(lpRect)

    此操作将按照 CSize 值偏移(移动)RECT(或 CRect)值。 此值 CSizecxcy 成员添加到 RECT 值的 lefttoprightbottom 数据成员。 它类似于采用 SIZE 参数的 CRect::operator + 版本。

示例

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 值的符号。 请参阅各个运算符的以下说明:

  • 运算符 -(size)

    此操作减去两个 CSize 值。

  • 运算符 -(point)

    此操作将偏移(按此值 CSize 的相反数)POINTCPoint 值。 从 POINT 值的 xy 数据成员减去此值 CSizecxcy。 它类似于采用 SIZE 参数的 CPoint::operator - 版本。

  • 运算符 -(lpRect)

    此操作将偏移(按此值 CSize 的相反数)RECTCRect 值。 从 RECT 值的 lefttoprightbottom 数据成员减去此值 CSizecxcy 成员。 它类似于采用 SIZE 参数的 CRect::operator - 版本。

  • 运算符 -()

    此操作返回此值 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);   

另请参阅

MFC 示例 MDI
层次结构图
CRect 类
CPoint 类