CPoint+CSize+CRect学习大纲。
 熟知CPoint、CSize、CRect类的基类
 class CPoint : public tagPOINT
 class CSize : public tagSIZE
 class CRect : public tagRECT
 留意CPoint、CSize、CRect之间的互操作,什么样的操作会涉及这些类型中的两个或多个。
 Point - Point => Size
 Point - Size  => Point
 Point - Rect  => Rect
 Point + Point => Point
 Point + Size  => Point
 Point + Rect  => Rect
 Size  - Point => Point
 Size  - Size  => Size
 Size  - Rect  => Rect
 Size  + Point => Point
 Size  + Size  => Size
 Size  + Rect  => Rect
 Rect  - Point => Rect
 Rect  - Size  => Rect
 Rect  - Rect  => Rect
 Rect  + Point => Rect
 Rect  + Size  => Rect
 Rect  + Rect  => Rect
 掌握CPoint类以下成员
 // 数据
 x
 y
 // 构造
 CPoint
 // 运算
 Offset
 operator –
 operator +
 operator +=
 operator –=
 // 比较
 operator !=
 operator ==
 掌握CSize类以下成员
 // 数据
 cx
 cy
 // 构造
 CSize
 // 运算
 operator –
 operator +
 operator +=
 operator –=
 // 比较
 operator !=
 operator ==
 掌握CRect类以下成员
 // 数据
 left
 top
 right
 bottom
 // 构造
 CRect
 SetRect
 CopyRect
 // 属性
 TopLeft
 BottomRight
 Width
 Height
 Size
 CenterPoint
 // 存在性
 IsRectEmpty
 SetRectEmpty
 IsRectNull
 // 比较
 PtInRect
 EqualRect
 // 修改
 MoveToX
 MoveToY
 MoveToXY
 OffsetRect
 InflateRect
 DeflateRect
 NormalizeRect
 SubtractRect
 IntersectRect
 UnionRect
 // 运算符
 operator LPCRECT
 operator LPRECT
 operator =
 operator !=
 operator ==
 operator –
 operator +
 operator &
 operator |
 operator +=
 operator –=
 operator &=
 operator |=
 掌握CPoint、CSize、CRect之间的互操作,什么样的操作会涉及这些类型中的两个或多个。
 Point - Point => Size
 Point - Size  => Point
 Point - Rect  => Rect
 Point + Point => Point
 Point + Size  => Point
 Point + Rect  => Rect
 Size  - Point => Point
 Size  - Size  => Size
 Size  - Rect  => Rect
 Size  + Point => Point
 Size  + Size  => Size
 Size  + Rect  => Rect
 Rect  - Point => Rect
 Rect  - Size  => Rect
 Rect  - Rect  => Rect
 Rect  + Point => Rect
 Rect  + Size  => Rect
 Rect  + Rect  => Rect
 * 加法满足交换律
 * 运算不可以移项
 * 与Rect有交的运算都产生Rect