次の方法で共有


CPoint::operator -

更新 : 2007 年 11 月

最初の 2 つのオーバーロード演算子のうちの 1 つを使って、CPoint オブジェクトから CPoint オブジェクトまたは CSize オブジェクトを減算します。

CSize operator -(
   POINT point 
) const throw( );
CPoint operator -(
   SIZE size 
) const throw( );
CRect operator -(
   const RECT* lpRect 
) const throw( );
CPoint operator -( ) const throw( );

パラメータ

  • point
    POINT 構造体または CPoint オブジェクトを保持します。

  • size
    SIZE 構造体または CSize オブジェクトを保持します。

  • lpRect
    RECT 構造体または CRect オブジェクトへのポインタを保持します。

戻り値

2 つのポイントの差を示す CSize、負の値が加算された CPoint、負の値が加算された CRect、または符号反転したポイントを示す CPoint を返します。

解説

3 番目のオーバーロード演算子は、符号反転した CPointCRect に加算します。最後のオーバーロード演算子は単項演算子を使って CPoint の符号を反転します。

たとえば、最初のオーバーロード演算子を使って 2 ポイント CPoint(25, -19) と CPoint(15, 5) の差を求めると CSize(10, -24) を返します。

CPoint から CSize を減算する場合は、同じ計算をしますが CSize オブジェクトではなく、CPoint オブジェクトを返します。たとえば、2 番目のオーバーロード演算子を使ってポイント CPoint(25, -19) とサイズ CSize(15, 5) の差を求めると、CPoint(10, -24) を返します。

ポイントから四角形を減算すると、ポイントで指定された xy の符号を反転して四角形に加算します。たとえば、3 番目のオーバーロード演算子を使って四角形 CRect(125, 200, 325, 400) からポイント CPoint(25, -19) を減算すると、CRect(100, 219, 300, 419) を返します。

ポイントの符号を反転するには単項演算子を使います。たとえば、単項演算子を使うと、ポイント CPoint(25, -19) はポイント CPoint(-25, 19) を返します。

使用例

// example for CPoint subtraction
CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);
CPoint   ptEnd;

ptEnd = ptStart - szOffset;

CPoint   ptResult(65, 65);

ASSERT(ptResult == ptEnd);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptEnd = ptStart - sz;

ASSERT(ptResult == ptEnd);

// example for CPoint unary operator
CPoint   pt(35, 35);
pt = -pt;

CPoint ptNeg(-35, -35);
ASSERT(pt == ptNeg);   

必要条件

ヘッダー : atltypes.h

参照

参照

CPoint クラス

階層図

CPoint::operator -=

CPoint::operator +=

CPoint::operator +

CSize::operator -

CRect::operator -

CPoint::Offset

CRect::OffsetRect

その他の技術情報

CPoint のメンバ