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
)的 cx
和 cy
成员是公开的。 此外, 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
设置 CSize
的 cx
成员。
initCY
设置 CSize
的 cy
成员。
initSize
用于初始化 CSize
的 SIZE 结构或 CSize
对象。
initPt
用于初始化 CSize
的 POINT 结构或 CPoint
对象。
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)
此操作将按照
CSize
值偏移(移动)POINT(或 CPoint)值。 此值CSize
的cx
和cy
成员添加到POINT
值的x
和y
数据成员。 它类似于采用 SIZE 参数的 CPoint::operator + 版本。运算符 +( lpRect)
此操作将按照
CSize
值偏移(移动)RECT(或 CRect)值。 此值CSize
的cx
和cy
成员添加到RECT
值的left
、top
、right
和bottom
数据成员。 它类似于采用 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 )
此操作将偏移(按此值
CSize
的相反数)POINT 或 CPoint 值。 从POINT
值的x
和y
数据成员减去此值CSize
的cx
和cy
。 它类似于采用 SIZE 参数的 CPoint::operator - 版本。operator -( lpRect )
此操作将偏移(按此值
CSize
的相反数)RECT 或 CRect 值。 从RECT
值的left
、top
、right
和bottom
数据成员减去此值CSize
的cx
和cy
成员。 它类似于采用 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);