類似於實作相對座標或位置的 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。
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。
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值。operator +(point)
此作業會依此值位移 (移動) POINT (或
CSize) 值。 此值cxcy的和CSize成員會新增至x值的 和y數據成員POINT。 類似於採用 SIZE 參數的 CPoint::operator + 版本。operator +( lpRect)
此作業會依此值來位移 RECT (或
CSize) 值。 此值cxcy的和CSize成員會加入至left值的、topright、 和資料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 -
這些運算子的前三個會將此值 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)
此作業會依此值的加法反向位移來位移 POINT 或
CSize值。 此值cxcy的 和CSize會從x值的 和y數據成員POINT減去。 類似於採用 SIZE 參數的 CPoint::operator 版本。operator -( lpRect)
此作業會依此值的加法反差來位移 RECT 或
CSize值。 這個cxcy值的和CSize成員會從left值的 、topright、 和數據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);