CSize 類別
類似於實作相對座標或位置的 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
結構。 這表示您可以在 呼叫 SIZE
的參數中傳遞 CSize
,而且 結構的資料成員 SIZE
是 的可存取資料成員 CSize
。
cx
cy
和 CSize
的成員是公開的 SIZE
。 此外, 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
的 SIZE 結構或 CSize
物件。
initPt
用來初始化 CSize
的 POINT 結構或 CPoint
物件。
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();
備註
請參閱個別運算子的下列描述:
operator +( size )
此作業會新增兩個
CSize
值。運算子 +( point )
此作業會依此值
CSize
位移 (移動) POINT (或 CPoint ) 值。 此值cx
CSize
的 和cy
成員會新增至x
值的 和y
資料成員POINT
。 類似于採用 SIZE 參數的 CPoint::operator + 版本。operator +( lpRect )
此作業會 依此值
CSize
來位移 RECT (或 CRect ) 值。 此值cx
CSize
的 和cy
成員會加入至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 -
這些運算子的前三個會將此值 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 )
此作業會 依此值
CSize
的加法反向位移來位移 POINT 或 CPoint 值。 此值cx
CSize
的 和cy
會從x
值的 和y
資料成員POINT
減去。 類似于採用 SIZE 參數的 CPoint::operator 版本。operator -( lpRect )
此作業會 依此值
CSize
的加法反差來位移 RECT 或 CRect 值。 這個cx
CSize
值的 和cy
成員會從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);
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應