// CuPoint - A 2-D point, similar to Windows POINT structure.
class CuPoint : public tagPOINT
{
public:
// Constructors
// create an uninitialized point
CuPoint() throw();
// create from two integers
CuPoint(int initX, int initY) throw();
// create from another point
CuPoint(POINT initPt) throw();
// create from a size
CuPoint(SIZE initSize) throw();
// create from an LPARAM: x = LOWORD(dw) y = HIWORD(dw)
CuPoint(LPARAM dwPoint) throw();
// Operations
// translate the point
void Offset(int xOffset, int yOffset) throw();
void Offset(POINT point) throw();
void Offset(SIZE size) throw();
void SetPoint(int X, int Y) throw();
BOOL operator==(POINT point) const throw();
BOOL operator!=(POINT point) const throw();
void operator+=(SIZE size) throw();
void operator-=(SIZE size) throw();
void operator+=(POINT point) throw();
void operator-=(POINT point) throw();
// Operators returning CuPoint values
CuPoint operator+(SIZE size) const throw();
CuPoint operator-(SIZE size) const throw();
CuPoint operator-() const throw();
CuPoint operator+(POINT point) const throw();
// Operators returning CuSize values
CuSize operator-(POINT point) const throw();
// Operators returning CuRect values
CuRect operator+(const RECT* lpRect) const throw();
CuRect operator-(const RECT* lpRect) const throw();
};
inline CuPoint::CuPoint()
{ /* random filled */ }
inline CuPoint::CuPoint(int initX, int initY)
{ x = initX; y = initY; }
inline CuPoint::CuPoint(POINT initPt)
{ *(POINT*)this = initPt; }
inline CuPoint::CuPoint(SIZE initSize)
{ *(SIZE*)this = initSize; }
inline CuPoint::CuPoint(LPARAM dwPoint)
{
x = (short)LOWORD(dwPoint);
y = (short)HIWORD(dwPoint);
}
inline void CuPoint::Offset(int xOffset, int yOffset)
{ x += xOffset; y += yOffset; }
inline void CuPoint::Offset(POINT point)
{ x += point.x; y += point.y; }
inline void CuPoint::Offset(SIZE size)
{ x += size.cx; y += size.cy; }
inline void CuPoint::SetPoint(int X, int Y)
{ x = X; y = Y; }
inline BOOL CuPoint::operator==(POINT point) const
{ return (x == point.x && y == point.y); }
inline BOOL CuPoint::operator!=(POINT point) const
{ return (x != point.x || y != point.y); }
inline void CuPoint::operator+=(SIZE size)
{ x += size.cx; y += size.cy; }
inline void CuPoint::operator-=(SIZE size)
{ x -= size.cx; y -= size.cy; }
inline void CuPoint::operator+=(POINT point)
{ x += point.x; y += point.y; }
inline void CuPoint::operator-=(POINT point)
{ x -= point.x; y -= point.y; }
inline CuPoint CuPoint::operator+(SIZE size) const
{ return CuPoint(x + size.cx, y + size.cy); }
inline CuPoint CuPoint::operator-(SIZE size) const
{ return CuPoint(x - size.cx, y - size.cy); }
inline CuPoint CuPoint::operator-() const
{ return CuPoint(-x, -y); }
inline CuPoint CuPoint::operator+(POINT point) const
{ return CuPoint(x + point.x, y + point.y); }
inline CuSize CuPoint::operator-(POINT point) const
{ return CuSize(x - point.x, y - point.y); }
inline CuRect CuPoint::operator+(const RECT* lpRect) const
{ return CuRect(lpRect) + *this; }
inline CuRect CuPoint::operator-(const RECT* lpRect) const
{ return CuRect(lpRect) - *this; }
2010年1月1日 星期五
CuPoint - A 2-D point, similar to Windows POINT structure.
訂閱:
張貼留言 (Atom)
從MFC抓出來的!
回覆刪除