CSize クラス

注

Microsoft Foundation Classes (MFC) ライブラリと Active Template Library (ATL) は引き続きサポートされています。 ただし、機能の追加やドキュメントの更新は行われません。

Windows の SIZE 構造体と同様に、相対座標や位置を実装します。

構文

class CSize : public tagSIZE

メンバー

パブリック コンストラクター

名前 説明
CSize::CSize CSize オブジェクトを構築します。

パブリック演算子

名前 説明
CSize::operator - 2 つのサイズを減算します。
CSize::operator != CSize とサイズが等しくないかどうかを確認します。
CSize::operator + 2 つのサイズを追加します。
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 は 0 に初期化されます。

例

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 ==

2 つのサイズが等しいかどうかを確認します。

BOOL operator==(SIZE size) const throw();

解説

サイズが等しい場合は 0 以外の値を返し、それ以外の場合は 0 を返します。

例

CSize sz1(135, 135);
CSize sz2(135, 135);

ASSERT(sz1 == sz2);

CSize::operator !=

2 つのサイズが等しくないかどうかを確認します。

BOOL operator!=(SIZE size) const throw();

解説

サイズが等しくない場合は 0 以外の値を返し、それ以外の場合は 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();

解説

個々の演算子については、次の説明を参照してください。

  • operator +(size)

    この操作では、2 つの CSize 値が追加されます。

  • 演算子 +(point)

    この操作では、POINT (または CPoint) 値をこの値 CSize でオフセット (移動) します。 この cx 値の cy および CSize メンバーは、x 値の y および POINT データ メンバーに追加されます。 これは、SIZE パラメーターを受け取る CPoint::operator + のバージョンに類似しています。

  • operator +(lpRect)

    この操作では、RECT (または CRect) 値をこの値 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 -

これらの演算子の最初の 3 つでは、この CSize 値をパラメーターの値に減算します。

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

解説

4 番目の演算子である単項マイナスは、CSize 値の符号を変更します。 個々の演算子については、次の説明を参照してください。

  • operator -(size)

    この操作では、2 つの CSize 値が減算されます。

  • operator -(point)

    この操作では、POINT または CPoint 値をこの CSize 値の反数でオフセット (移動) します。 この cx 値の cy および CSize は、x 値の y および POINT データ メンバーから減算されます。 これは、SIZE パラメーターを受け取る CPoint::operator - のバージョンに類似しています。

  • operator -(lpRect)

    この操作では、RECT または CRect 値をこの CSize 値の反数でオフセット (移動) します。 この cx 値の cy および CSize メンバーは、left 値の top、right、bottom、および RECT データ メンバーから減算されます。 これは、SIZE パラメーターを受け取る CRect::operator - のバージョンに類似しています。

  • 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);   

関連項目

MFC サンプル MDI
階層図
CRect クラス
CPoint クラス