类似于实现相对坐标或位置的 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 的可访问的数据成员。
cx(和 cy)的 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
用于初始化 的 CSize 结构或 CSize 对象。
initPt
用于初始化 的 CPoint 结构或 CSize 对象。
dwSize
用于初始化 CSize 的 DWORD。 低序单词是 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)
此操作将按照 值偏移(移动)POINT(或
CSize)值。 此值cx的cy和CSize成员添加到x值的y和POINT数据成员。 它类似于采用 SIZE 参数的 CPoint::operator + 版本。运算符 +( lpRect)
此操作将按照 值偏移(移动)RECT(或
CSize)值。 此值cx的cy和CSize成员添加到left值的top、right、bottom和RECT数据成员。 它类似于采用 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 值的符号。 请参阅各个运算符的以下说明:
operator -(size)
此操作减去两个
CSize值。operator -(point)
此操作将偏移(按此值 的相反数)POINT 或
CSize值。 从cx值的cy和CSize数据成员减去此值x的y和POINT。 它类似于采用 SIZE 参数的 CPoint::operator - 版本。operator -( lpRect)
此操作将偏移(按此值 的相反数)RECT 或
CSize值。 从cx值的cy、CSize、left和top数据成员减去此值right的bottom和RECT成员。 它类似于采用 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);