CRect クラスCRect Class

Windows の RECT 構造体に似ています。Similar to a Windows RECT structure.

構文Syntax

class CRect : public tagRECT

メンバーMembers

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

名前Name 説明Description
CRect:: CRectCRect::CRect CRect オブジェクトを構築します。Constructs a CRect object.

パブリック メソッドPublic Methods

名前Name 説明Description
CRect:: 右下CRect::BottomRight の右下の点を返し CRect ます。Returns the bottom-right point of CRect.
CRect:: 小惑星CRect::CenterPoint の小惑星を返し CRect ます。Returns the centerpoint of CRect.
CRect:: CopyRectCRect::CopyRect 変換元の四角形の寸法をにコピー CRect します。Copies the dimensions of a source rectangle to CRect.
CRect::D eflateRectCRect::DeflateRect の幅と高さを小さくし CRect ます。Decreases the width and height of CRect.
CRect:: EqualRectCRect::EqualRect が、指定された四角形と等しいかどうかを判断し CRect ます。Determines whether CRect is equal to the given rectangle.
CRect:: HeightCRect::Height の高さを計算 CRect します。Calculates the height of CRect.
CRect:: InflateRectCRect::InflateRect の幅と高さを大きくし CRect ます。Increases the width and height of CRect.
CRect:: IntersectRectCRect::IntersectRect CRect2 つの四角形の交差部分に等しいを設定します。Sets CRect equal to the intersection of two rectangles.
CRect:: IsRectEmptyCRect::IsRectEmpty が空かどうかを判断し CRect ます。Determines whether CRect is empty. CRect 幅と高さのどちらかまたは両方が0の場合、は空になります。CRect is empty if the width and/or height are 0.
CRect:: IsRectNullCRect::IsRectNull top、、 bottom 、およびの各 left right メンバー変数がすべて0に等しいかどうかを判断します。Determines whether the top, bottom, left, and right member variables are all equal to 0.
CRect:: MoveToXCRect::MoveToX CRect指定した x 座標に移動します。Moves CRect to the specified x-coordinate.
CRect:: MoveToXYCRect::MoveToXY CRect指定した x 座標と y 座標に移動します。Moves CRect to the specified x- and y-coordinates.
CRect:: MoveToYCRect::MoveToY CRect指定した y 座標に移動します。Moves CRect to the specified y-coordinate.
CRect:: NormalizeRectCRect::NormalizeRect の高さと幅を標準化 CRect します。Standardizes the height and width of CRect.
CRect:: OffsetRectCRect::OffsetRect CRect指定したオフセットだけ移動します。Moves CRect by the specified offsets.
CRect::P の実行CRect::PtInRect 指定した点が内にあるかどうかを判断し CRect ます。Determines whether the specified point lies within CRect.
CRect:: SetRectCRect::SetRect の大きさを設定 CRect します。Sets the dimensions of CRect.
CRect:: SetRectEmptyCRect::SetRectEmpty CRectは空の四角形 (すべての座標が0に等しい) に設定されます。Sets CRect to an empty rectangle (all coordinates equal to 0).
CRect:: SizeCRect::Size のサイズを計算 CRect します。Calculates the size of CRect.
CRect:: SubtractRectCRect::SubtractRect ある四角形を別の四角形から減算します。Subtracts one rectangle from another.
CRect:: TopLeftCRect::TopLeft の左上の点を返し CRect ます。Returns the top-left point of CRect.
CRect:: UnionRectCRect::UnionRect CRect2 つの四角形の和集合に等しいを設定します。Sets CRect equal to the union of two rectangles.
CRect:: WidthCRect::Width の幅を計算 CRect します。Calculates the width of CRect.

パブリック演算子Public Operators

名前Name 説明Description
CRect:: operator-CRect::operator - 指定したオフセットを CRect または縮小から減算 CRect し、結果として得られるを返し CRect ます。Subtracts the given offsets from CRect or deflates CRect and returns the resulting CRect.
CRect:: operator LPCRECTCRect::operator LPCRECT CRectLPCRECT に変換します。Converts a CRect to an LPCRECT.
CRect:: operator LPRECTCRect::operator LPRECT CRectLPRECT に変換します。Converts a CRect to an LPRECT.
CRect:: operator! =CRect::operator != が四角形と等しくないかどうかを判断し CRect ます。Determines whether CRect is not equal to a rectangle.
CRect:: operator &CRect::operator & と四角形の交差部分を作成し、結果とし CRect て得られるを返し CRect ます。Creates the intersection of CRect and a rectangle and returns the resulting CRect.
CRect:: operator &=CRect::operator &= CRectと四角形の交差部分に等しいを設定し CRect ます。Sets CRect equal to the intersection of CRect and a rectangle.
CRect:: operator |CRect::operator | と四角形の和集合を作成 CRect し、その結果のを返し CRect ます。Creates the union of CRect and a rectangle and returns the resulting CRect.
CRect:: operator |=CRect::operator |= CRectと四角形の和集合に等しいを設定し CRect ます。Sets CRect equal to the union of CRect and a rectangle.
CRect:: operator +CRect::operator + 指定されたオフセットを CRect または増えに追加 CRect し、結果として得られるを返し CRect ます。Adds the given offsets to CRect or inflates CRect and returns the resulting CRect.
CRect:: operator + =CRect::operator += 指定したオフセットを CRect または増えに追加し CRect ます。Adds the specified offsets to CRect or inflates CRect.
CRect:: operator =CRect::operator = 四角形の寸法をにコピー CRect します。Copies the dimensions of a rectangle to CRect.
CRect:: operator-=CRect::operator -= 指定したオフセットを CRect または縮小から減算し CRect ます。Subtracts the specified offsets from CRect or deflates CRect.
CRect:: operator = =CRect::operator == が四角形と等しいかどうかを判断し CRect ます。Determines whether CRect is equal to a rectangle.

解説Remarks

CRect には CRect 、オブジェクトと Windows 構造体を操作するためのメンバー関数も含まれてい RECT ます。CRect also includes member functions to manipulate CRect objects and Windows RECT structures.

オブジェクトは、 CRect RECT 構造体、、またはを任意の場所に渡すことができる関数パラメーターとして渡すことができ LPCRECT LPRECT ます。A CRect object can be passed as a function parameter wherever a RECT structure, LPCRECT, or LPRECT can be passed.

注意

このクラスは、 tagRECT 構造体から派生します。This class is derived from the tagRECT structure. (名前は、 tagRECT 構造体の使用頻度が低い名前です RECT )。これは、 left 構造体のデータメンバー (、、 top right 、および bottom ) RECT が、のアクセス可能なデータメンバーであることを意味 CRect します。(The name tagRECT is a less-commonly-used name for the RECT structure.) This means that the data members (left, top, right, and bottom) of the RECT structure are accessible data members of CRect.

には、 CRect 四角形の左上および右下の点を定義するメンバー変数が含まれています。A CRect contains member variables that define the top-left and bottom-right points of a rectangle.

を指定する場合は、これを CRect 正規化するように注意する必要があります。つまり、左の座標の値が右側より小さく、上の値が下部よりも小さくなるようにします。When specifying a CRect, you must be careful to construct it so that it is normalized — in other words, such that the value of the left coordinate is less than the right and the top is less than the bottom. たとえば、の左上 (10, 10) と右下 (20, 20) は正規化された四角形を定義しますが、(10, 10) の左上 (20, 20) と右下 (10, 10) は正規化されていない四角形を定義します。For example, a top left of (10,10) and bottom right of (20,20) defines a normalized rectangle but a top left of (20,20) and bottom right of (10,10) defines a non-normalized rectangle. 四角形が正規化されていない場合、多くの CRect メンバー関数が正しくない結果を返す可能性があります。If the rectangle is not normalized, many CRect member functions may return incorrect results. (これらの関数の一覧については、「 CRect:: NormalizeRect 」を参照してください)。正規化された四角形を必要とする関数を呼び出す前に、関数を呼び出すことにより、正規化されていない四角形を正規化でき NormalizeRect ます。(See CRect::NormalizeRect for a list of these functions.) Before you call a function that requires normalized rectangles, you can normalize non-normalized rectangles by calling the NormalizeRect function.

CRect Cdc::D PtoLPおよびCdc:: lptodpメンバー関数を使用してを操作する場合は注意が必要です。Use caution when manipulating a CRect with the CDC::DPtoLP and CDC::LPtoDP member functions. 表示コンテキストのマッピングモードが、のように y エクステントが負の値になるような場合、はを変換して MM_LOENGLISH CDC::DPtoLP 、その CRect 上辺が一番下よりも大きくなるようにします。If the mapping mode of a display context is such that the y-extent is negative, as in MM_LOENGLISH, then CDC::DPtoLP will transform the CRect so that its top is greater than the bottom. やなどの Height 関数 Size は、変換されたの高さに対して負の値を返し、 CRect 四角形は正規化されません。Functions such as Height and Size will then return negative values for the height of the transformed CRect, and the rectangle will be non-normalized.

オーバーロードされた演算子を使用する場合 CRect 、最初のオペランドはである必要があります CRect 。2番目のオペランドは、 RECT構造体またはオブジェクトのいずれかになります。 CRectWhen using overloaded CRect operators, the first operand must be a CRect; the second can be either a RECT structure or a CRect object.

継承階層Inheritance Hierarchy

tagRECT

CRect

要件Requirements

ヘッダー: atltypes. hHeader: atltypes.h

CRect:: 右下CRect::BottomRight

座標は、に格納されている CPoint オブジェクトへの参照として返され CRect ます。The coordinates are returned as a reference to a CPoint object that is contained in CRect.

CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();

戻り値Return Value

四角形の右下隅の座標です。The coordinates of the bottom-right corner of the rectangle.

解説Remarks

この関数を使用すると、四角形の右下隅を取得または設定できます。You can use this function to either get or set the bottom-right corner of the rectangle. 代入演算子の左側にあるこの関数を使用して、コーナーを設定します。Set the corner by using this function on the left side of the assignment operator.

Example

// use BottomRight() to retrieve the bottom
// right POINT
CRect rect(210, 150, 350, 900);
CPoint ptDown;

ptDown = rect.BottomRight();

// ptDown is now set to (350, 900)
ASSERT(ptDown == CPoint(350, 900));

// or, use BottomRight() to set the bottom
// right POINT
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);

CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
rect2.BottomRight() = ptLow;

// rect2 is now (10, 10, 180, 180)
ASSERT(rect2 == CRect(10, 10, 180, 180));

CRect:: 小惑星CRect::CenterPoint

左辺と右辺の CRect 値を加算して2で割ることによって、の小惑星を計算します。また、上と下の値を加算し、2で除算します。Calculates the centerpoint of CRect by adding the left and right values and dividing by two, and adding the top and bottom values and dividing by two.

CPoint CenterPoint() const throw();

戻り値Return Value

CPointの小惑星であるオブジェクト CRectA CPoint object that is the centerpoint of CRect.

Example

// Code from this OnPaint() implementation can be pasted into your own application
// to draw lines that would look like a letter "Y" within your dialog.
void CMyDlg::OnPaint()
{
    CPaintDC dc(this);

    // device context for painting

    // get the size and position of the client area of
    // your window

    CRect rect;
    GetClientRect(&rect);

    // Move the current pen to the top left of the window. We call the
    // TopLeft() member of CRect here and it returns a CPoint object we
    // pass to the override of CDC::MoveTo() that accepts a CPoint.

    dc.MoveTo(rect.TopLeft());

    // Draw a line from the top left to the center of the window.
    // CenterPoint() gives us the middle point of the window as a
    // CPoint, and since CDC::LineTo() has an override that accepts a
    // CPoint, we can just pass it along.

    dc.LineTo(rect.CenterPoint());

    // Now, draw a line to the top right of the window. There's no
    // CRect member which returns a CPoint for the top right of the
    // window, so we'll reference the CPoint members directly and call
    // the CDC::LineTo() override which takes two integers.

    dc.LineTo(rect.right, rect.top);

    // The top part of the "Y" is drawn. Now, we'll draw the stem. We
    // start from the center point.

    dc.MoveTo(rect.CenterPoint());

    // and then draw to the middle of the bottom edge of the window.
    // We'll get the x-coordinate from the x member of the CPOINT
    // returned by CenterPoint(), and the y value comes directly from
    // the rect.

    dc.LineTo(rect.CenterPoint().x, rect.bottom);
}

CRect:: CopyRectCRect::CopyRect

四角形を lpSrcRect にコピー CRect します。Copies the lpSrcRect rectangle into CRect.

void CopyRect(LPCRECT lpSrcRect) throw();

パラメーターParameters

lpSrcRectlpSrcRect
コピーされる RECT 構造体またはオブジェクトを指し CRect ます。Points to the RECT structure or CRect object that is to be copied.

Example

CRect rectSource(35, 10, 125, 10);
CRect rectDest;

rectDest.CopyRect(&rectSource);

// rectDest is now set to (35, 10, 125, 10)

RECT rectSource2;
rectSource2.left = 0;
rectSource2.top = 0;
rectSource2.bottom = 480;
rectSource2.right = 640;

rectDest.CopyRect(&rectSource2);

// works against RECT structures, too!
// rectDest is now set to (0, 0, 640, 480)

CRect:: CRectCRect::CRect

CRect オブジェクトを構築します。Constructs a CRect object.

CRect() throw();
CRect(int l, int t, int r, int b) throw();
CRect(const RECT& srcRect) throw();
CRect(LPCRECT lpSrcRect) throw();
CRect(POINT point, SIZE size) throw();
CRect(POINT topLeft, POINT bottomRight) throw();

パラメーターParameters

ll
の左の位置を指定し CRect ます。Specifies the left position of CRect.

tt
の先頭を指定し CRect ます。Specifies the top of CRect.

rr
の適切な位置を指定し CRect ます。Specifies the right position of CRect.

bb
の下部を指定し CRect ます。Specifies the bottom of CRect.

srcRectsrcRect
は、の座標を使用して RECT 構造体を参照し CRect ます。Refers to the RECT structure with the coordinates for CRect.

lpSrcRectlpSrcRect
RECTの座標を持つ構造体を指し CRect ます。Points to the RECT structure with the coordinates for CRect.

視点point
構築する四角形の始点を指定します。Specifies the origin point for the rectangle to be constructed. 左上隅に相当します。Corresponds to the top-left corner.

sizesize
構築する四角形の左上隅から右下隅までの移動を指定します。Specifies the displacement from the top-left corner to the bottom-right corner of the rectangle to be constructed.

topLefttopLeft
の左上の位置を指定し CRect ます。Specifies the top-left position of CRect.

bottomRightbottomRight
の右下の位置を指定し CRect ます。Specifies the bottom-right position of CRect.

解説Remarks

引数を指定しない場合、、、 left top 、およびの各 right bottom メンバーは0に設定されます。If no arguments are given, left, top, right, and bottom members are set to 0.

CRect( const RECT& ) コンストラクターと CRect ( LPCRECT ) コンストラクターは、 copyrectを実行します。The CRect(const RECT&) and CRect(LPCRECT) constructors perform a CopyRect. その他のコンストラクターは、オブジェクトのメンバー変数を直接初期化します。The other constructors initialize the member variables of the object directly.

Example

// default constructor is equivalent to CRect(0, 0, 0, 0)
CRect emptyRect;

// four-integers are left, top, right, and bottom
CRect rect(0, 0, 100, 50);
ASSERT(rect.Width() == 100);
ASSERT(rect.Height() == 50);

// Initialize from RECT structure
RECT sdkRect;
sdkRect.left = 0;
sdkRect.top = 0;
sdkRect.right = 100;
sdkRect.bottom = 50;

CRect rect2(sdkRect);
// by reference
CRect rect3(&sdkRect);

// by address
ASSERT(rect2 == rect);
ASSERT(rect3 == rect);

// from a point and a size
CPoint pt(0, 0);
CSize sz(100, 50);
CRect rect4(pt, sz);
ASSERT(rect4 == rect2);

// from two points
CPoint ptBottomRight(100, 50);
CRect rect5(pt, ptBottomRight);
ASSERT(rect5 == rect4);

CRect::D eflateRectCRect::DeflateRect

DeflateRect 縮小は、 CRect 中心に向かって移動します。DeflateRect deflates CRect by moving its sides toward its center.

void DeflateRect(int x, int y) throw();
void DeflateRect(SIZE size) throw();
void DeflateRect(LPCRECT lpRect) throw();
void DeflateRect(int l, int t, int r, int b) throw();

パラメーターParameters

xx
の左側と右側を縮小する単位の数を指定し CRect ます。Specifies the number of units to deflate the left and right sides of CRect.

yy
の上下を収縮する単位数を指定し CRect ます。Specifies the number of units to deflate the top and bottom of CRect.

sizesize
Deflate する単位の数を指定する サイズ または CSize CRectA SIZE or CSize that specifies the number of units to deflate CRect. 値は、左右を縮小 cx する単位の数を指定し、値は、 cy 上と下を収縮する単位の数を指定します。The cx value specifies the number of units to deflate the left and right sides and the cy value specifies the number of units to deflate the top and bottom.

lpRectlpRect
CRect 各辺を収縮する単位の数を指定する RECT 構造体またはを指します。Points to a RECT structure or CRect that specifies the number of units to deflate each side.

ll
の左側を圧縮する単位数を指定し CRect ます。Specifies the number of units to deflate the left side of CRect.

tt
の上部を deflate する単位数を指定し CRect ます。Specifies the number of units to deflate the top of CRect.

rr
右側を縮小する単位の数を指定し CRect ます。Specifies the number of units to deflate the right side of CRect.

bb
の下部を圧縮する単位数を指定し CRect ます。Specifies the number of units to deflate the bottom of CRect.

解説Remarks

これを行うには、によって、 DeflateRect 左と上に単位が加算され、右と下から単位が減算されます。To do this, DeflateRect adds units to the left and top and subtracts units from the right and bottom. のパラメーター DeflateRect は符号付きの値です。正の値は deflate と負の値が CRect 膨張します。The parameters of DeflateRect are signed values; positive values deflate CRect and negative values inflate it.

最初の2つのオーバーロードは、の反対側の両方のペアを圧縮し、 CRect 合計幅が x (または) の2倍に減少 cx し、合計の高さが y (または) の2倍に減少し cy ます。The first two overloads deflate both pairs of opposite sides of CRect so that its total width is decreased by two times x (or cx) and its total height is decreased by two times y (or cy). 他の2つのオーバーロードは、互いに独立してそれぞれの辺を deflate し CRect ます。The other two overloads deflate each side of CRect independently of the others.

Example

CRect rect(10, 10, 50, 50);
rect.DeflateRect(1, 2);
ASSERT(rect.left == 11 && rect.right == 49);
ASSERT(rect.top == 12 && rect.bottom == 48);

CRect rect2(10, 10, 50, 50);
CRect rectDeflate(1, 2, 3, 4);
rect2.DeflateRect(&rectDeflate);
ASSERT(rect2.left == 11 && rect2.right == 47);
ASSERT(rect2.top == 12 && rect2.bottom == 46);

CRect:: EqualRectCRect::EqualRect

が、指定された四角形と等しいかどうかを判断し CRect ます。Determines whether CRect is equal to the given rectangle.

BOOL EqualRect(LPCRECT lpRect) const throw();

パラメーターParameters

lpRectlpRect
CRect 四角形の左上隅と右下隅の座標を格納している RECT 構造体またはオブジェクトを指します。Points to a RECT structure or CRect object that contains the upper-left and lower-right corner coordinates of a rectangle.

戻り値Return Value

2つの四角形の上、左、下、および右の値が同じ場合は0以外の値。それ以外の場合は0です。Nonzero if the two rectangles have the same top, left, bottom, and right values; otherwise 0.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1.EqualRect(rect2));
ASSERT(!rect1.EqualRect(rect3));
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect1.EqualRect(&test));

CRect:: HeightCRect::Height

CRect下部の値からトップの値を減算することによっての高さを計算します。Calculates the height of CRect by subtracting the top value from the bottom value.

int Height() const throw();

戻り値Return Value

の高さ CRectThe height of CRect.

解説Remarks

結果の値には負の値を指定できます。The resulting value can be negative.

注意

四角形が正規化されているか、この関数が失敗する可能性があります。The rectangle must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangle before calling this function.

Example

CRect rect(20, 30, 80, 70);
int nHt = rect.Height();

// nHt is now 40
ASSERT(nHt == 40);

CRect:: InflateRectCRect::InflateRect

InflateRect 増えは、 CRect その側を中央から離れて移動します。InflateRect inflates CRect by moving its sides away from its center.

void InflateRect(int x, int y) throw();
void InflateRect(SIZE size) throw();
void InflateRect(LPCRECT lpRect) throw();
void InflateRect(int l, int t, int r,  int b) throw();

パラメーターParameters

xx
の左辺と右辺を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the left and right sides of CRect.

yy
の上と下を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the top and bottom of CRect.

sizesize
膨張する単位の数を指定する サイズ または CSize CRectA SIZE or CSize that specifies the number of units to inflate CRect. 値は、左右に拡大 cx する単位の数を指定し、値は、 cy 上および下を拡大する単位の数を指定します。The cx value specifies the number of units to inflate the left and right sides and the cy value specifies the number of units to inflate the top and bottom.

lpRectlpRect
CRect 各辺を膨張する単位の数を指定する RECT 構造体またはを指します。Points to a RECT structure or CRect that specifies the number of units to inflate each side.

ll
の左側を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the left side of CRect.

tt
の先頭を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the top of CRect.

rr
右側を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the right side of CRect.

bb
の下部を拡大する単位の数を指定し CRect ます。Specifies the number of units to inflate the bottom of CRect.

解説Remarks

これを行うには、 InflateRect 左と上から単位を減算し、右と下に単位を追加します。To do this, InflateRect subtracts units from the left and top and adds units to the right and bottom. のパラメーター InflateRect は符号付きの値です。正の値の膨張と負の値は CRect それを deflate します。The parameters of InflateRect are signed values; positive values inflate CRect and negative values deflate it.

最初の2つのオーバーロードは、の反対側の両方のペアを膨張 CRect させて、合計幅が x (または) の2倍増加し、 cx 合計の高さが y (または) の2倍増加するようにし cy ます。The first two overloads inflate both pairs of opposite sides of CRect so that its total width is increased by two times x (or cx) and its total height is increased by two times y (or cy). 他の2つのオーバーロードは、の各辺を互いに独立して膨張させ CRect ます。The other two overloads inflate each side of CRect independently of the others.

Example

CRect rect(0, 0, 300, 300);
rect.InflateRect(50, 200);

// rect is now (-50, -200, 350, 500)
ASSERT(rect == CRect(-50, -200, 350, 500));

CRect:: IntersectRectCRect::IntersectRect

は、 CRect 既存の2つの四角形の交差部分と等しいことを意味します。Makes a CRect equal to the intersection of two existing rectangles.

BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();

パラメーターParameters

lpRect1lpRect1
ソース四角形を含む RECT 構造体またはオブジェクトを指し CRect ます。Points to a RECT structure or CRect object that contains a source rectangle.

lpRect2lpRect2
RECTソース四角形を含む構造体またはオブジェクトを指し CRect ます。Points to a RECT structure or CRect object that contains a source rectangle.

戻り値Return Value

積集合が空でない場合は0以外の。積集合が空の場合は0。Nonzero if the intersection is not empty; 0 if the intersection is empty.

解説Remarks

共通部分は、両方の既存の四角形に含まれる最大の四角形です。The intersection is the largest rectangle contained in both existing rectangles.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect rectOne(125,  0, 150, 200);
CRect rectTwo(0, 75, 350, 95);
CRect rectInter;

rectInter.IntersectRect(rectOne, rectTwo);
ASSERT(rectInter == CRect(125, 75, 150, 95));
// operator &= can do the same task:

CRect rectInter2 = rectOne;
rectInter2 &= rectTwo;
ASSERT(rectInter2 == CRect(125, 75, 150, 95));

CRect:: IsRectEmptyCRect::IsRectEmpty

が空かどうかを判断し CRect ます。Determines whether CRect is empty.

BOOL IsRectEmpty() const throw();

戻り値Return Value

が空の場合は0以外の CRect CRect 。が空でない場合は0。Nonzero if CRect is empty; 0 if CRect is not empty.

解説Remarks

幅と高さのどちらかまたは両方が0または負の場合、四角形は空になります。A rectangle is empty if the width and/or height are 0 or negative. はとは異なり IsRectNull 、四角形のすべての座標がゼロであるかどうかを判断します。Differs from IsRectNull, which determines whether all coordinates of the rectangle are zero.

注意

四角形が正規化されているか、この関数が失敗する可能性があります。The rectangle must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangle before calling this function.

Example

CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectEmpty());
ASSERT(!rectSome.IsRectEmpty());
CRect rectEmpty(35, 35, 35, 35);
ASSERT(rectEmpty.IsRectEmpty());

CRect:: IsRectNullCRect::IsRectNull

の top、left、bottom、および right の各値 CRect がすべて0に等しいかどうかを判断します。Determines whether the top, left, bottom, and right values of CRect are all equal to 0.

BOOL IsRectNull() const throw();

戻り値Return Value

CRectが top、left、bottom、および right の各値がすべて0の場合は0以外の値。それ以外の場合は0。Nonzero if CRect's top, left, bottom, and right values are all equal to 0; otherwise 0.

解説Remarks

はとは異なり IsRectEmpty 、四角形が空であるかどうかを判断します。Differs from IsRectEmpty, which determines whether the rectangle is empty.

Example

CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectNull());
ASSERT(!rectSome.IsRectNull());
// note that null means _all_ zeros

CRect rectNotNull(0, 0, 35, 50);
ASSERT(!rectNotNull.IsRectNull());

CRect:: MoveToXCRect::MoveToX

四角形を x で指定された絶対 x 座標に移動します。Call this function to move the rectangle to the absolute x-coordinate specified by x.

void MoveToX(int x) throw();

パラメーターParameters

xx
四角形の左上隅の絶対値の x 座標。The absolute x-coordinate for the upper-left corner of the rectangle.

Example

CRect rect(0, 0, 100, 100);
rect.MoveToX(10);

// rect is now (10, 0, 110, 100);
ASSERT(rect == CRect(10, 0, 110, 100));

CRect:: MoveToXYCRect::MoveToXY

この関数を呼び出して、指定した絶対値の x 座標と y 座標に四角形を移動します。Call this function to move the rectangle to the absolute x- and y-coordinates specified.

void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();

パラメーターParameters

xx
四角形の左上隅の絶対値の x 座標。The absolute x-coordinate for the upper-left corner of the rectangle.

yy
四角形の左上隅の絶対値の y 座標。The absolute y-coordinate for the upper-left corner of the rectangle.

視点point
POINT四角形の左上隅を指定する構造体。A POINT structure specifying the absolute upper-left corner of the rectangle.

Example

CRect rect(0, 0, 100, 100);
rect.MoveToXY(10, 10);
// rect is now (10, 10, 110, 110);
ASSERT(rect == CRect(10, 10, 110, 110));

CRect:: MoveToYCRect::MoveToY

四角形を y によって指定された絶対 y 座標に移動するには、この関数を呼び出します。Call this function to move the rectangle to the absolute y-coordinate specified by y.

void MoveToY(int y) throw();

パラメーターParameters

yy
四角形の左上隅の絶対値の y 座標。The absolute y-coordinate for the upper-left corner of the rectangle.

Example

CRect rect(0, 0, 100, 100);
rect.MoveToY(10);
// rect is now (0, 10, 100, 110);
ASSERT(rect == CRect(0, 10, 100, 110));

CRect:: NormalizeRectCRect::NormalizeRect

CRect高さと幅の両方が正であるように、を正規化します。Normalizes CRect so that both the height and width are positive.

void NormalizeRect() throw();

解説Remarks

四角形は、Windows が座標に通常使用する4番目のクアドラントの配置に対して正規化されます。The rectangle is normalized for fourth-quadrant positioning, which Windows typically uses for coordinates. NormalizeRect 上と下の値を比較し、top が下端より大きい場合はそれらを交換します。NormalizeRect compares the top and bottom values, and swaps them if the top is greater than the bottom. 同様に、左側の値が右側よりも大きい場合は、左辺と右辺の値が入れ替えられます。Similarly, it swaps the left and right values if the left is greater than the right. この関数は、さまざまなマッピングモードおよび反転された四角形を処理する場合に便利です。This function is useful when dealing with different mapping modes and inverted rectangles.

注意

次の CRect メンバー関数は、適切に機能するために正規化された四角形を必要とします: HeightWidthSizeisrectemptyptinrectEqualRectUnionRectIntersectRectSubtractRectoperator = =operator! =operator |operator |=、operator &、operator &=The following CRect member functions require normalized rectangles in order to work properly: Height, Width, Size, IsRectEmpty, PtInRect, EqualRect, UnionRect, IntersectRect, SubtractRect, operator ==, operator !=, operator |, operator |=, operator &, and operator &=.

Example

CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);

CRect:: OffsetRectCRect::OffsetRect

CRect指定したオフセットだけ移動します。Moves CRect by the specified offsets.

void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();

パラメーターParameters

xx
左または右に移動する量を指定します。Specifies the amount to move left or right. 左に移動するには、負の値にする必要があります。It must be negative to move left.

yy
上または下に移動する量を指定します。Specifies the amount to move up or down. 上に移動するには、負の値である必要があります。It must be negative to move up.

視点point
移動する次元の両方を指定する POINT 構造体または CPoint オブジェクトを格納します。Contains a POINT structure or CPoint object specifying both dimensions by which to move.

sizesize
移動する次元の両方を指定する サイズ 構造体または CSize オブジェクトを格納します。Contains a SIZE structure or CSize object specifying both dimensions by which to move.

解説Remarks

X CRect 単位を x 軸と y 単位の y 軸に沿っ て移動 します。Moves CRectx units along the x-axis and y units along the y-axis. X および y パラメーターは符号付きの値なので、左または右に移動したり、上下に CRect 移動したりできます。The x and y parameters are signed values, so CRect can be moved left or right and up or down.

Example

CRect rect(0, 0, 35, 35);
rect.OffsetRect(230, 230);

// rect is now (230, 230, 265, 265)
ASSERT(rect == CRect(230, 230, 265, 265));

CRect:: operator LPCRECT を CRect Lpcrectに変換します。CRect::operator LPCRECT Converts a CRect to an LPCRECT.

operator LPCRECT() const throw();

解説Remarks

この関数を使用する場合、address of () 演算子は必要ありません &When you use this function, you don't need the address-of (&) operator. この演算子は、を必要とする関数にオブジェクトを渡すときに自動的に使用され CRect LPCRECT ます。This operator will be automatically used when you pass a CRect object to a function that expects an LPCRECT.

CRect:: operator LPRECTCRect::operator LPRECT

CRect LPRECTに変換します。Converts a CRect to an LPRECT.

operator LPRECT() throw();

解説Remarks

この関数を使用する場合、address of () 演算子は必要ありません &When you use this function, you don't need the address-of (&) operator. この演算子は、を必要とする関数にオブジェクトを渡すときに自動的に使用され CRect LPRECT ます。This operator will be automatically used when you pass a CRect object to a function that expects an LPRECT.

Example

CRect:: operator LPCRECT」の例を参照してください。See the example for CRect::operator LPCRECT.

CRect:: operator =CRect::operator =

Srcrect をに割り当て CRect ます。Assigns srcRect to CRect.

void operator=(const RECT& srcRect) throw();

パラメーターParameters

srcRectsrcRect
ソースの四角形を参照します。Refers to a source rectangle. には、 RECT またはを指定でき CRect ます。Can be a RECT or CRect.

Example

CRect rect(0, 0, 127, 168);
CRect rect2;

rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));

CRect:: operator = =CRect::operator ==

rect CRect 左上隅と右下隅の座標を比較することによって、がと等しいかどうかを判断します。Determines whether rect is equal to CRect by comparing the coordinates of their upper-left and lower-right corners.

BOOL operator==(const RECT& rect) const throw();

パラメーターParameters

rectrect
ソースの四角形を参照します。Refers to a source rectangle. には、 RECT またはを指定でき CRect ます。Can be a RECT or CRect.

戻り値Return Value

等しい場合は0以外の値。それ以外の場合は0です。Nonzero if equal; otherwise 0.

解説Remarks

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 == rect2);
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect1 == test);

CRect:: operator! =CRect::operator !=

CRect 左上隅と右下隅の座標を比較することによって、rect がと等しくないかどうかを判断します。Determines whether rect is not equal to CRect by comparing the coordinates of their upper-left and lower-right corners.

BOOL operator!=(const RECT& rect) const throw();

パラメーターParameters

rectrect
ソースの四角形を参照します。Refers to a source rectangle. には、 RECT またはを指定でき CRect ます。Can be a RECT or CRect.

戻り値Return Value

等しくない場合は0以外の値。それ以外の場合は0です。Nonzero if not equal; otherwise 0.

解説Remarks

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999,  6,  3);
ASSERT(rect1 != rect3);
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect3 != test);

CRect:: operator + =CRect::operator +=

最初の2つのオーバーロードは、 CRect 指定されたオフセットによって移動します。The first two overloads move CRect by the specified offsets.

void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();

パラメーターParameters

視点point
四角形を移動する単位の数を指定する ポイント 構造体または CPoint オブジェクト。A POINT structure or CPoint object that specifies the number of units to move the rectangle.

sizesize
四角形を移動する単位の数を指定する サイズ 構造体または CSize オブジェクト。A SIZE structure or CSize object that specifies the number of units to move the rectangle.

lpRectlpRect
CRect 各辺を拡大する単位の数を含む RECT 構造体またはオブジェクトを指し CRect ます。Points to a RECT structure or CRect object that contains the number of units to inflate each side of CRect.

解説Remarks

パラメーターの x 値と y 値 (または cxcy ) がに追加され CRect ます。The parameter's x and y (or cx and cy) values are added to CRect.

3番目のオーバーロードは、 CRect パラメーターの各メンバーで指定された単位数で増えます。The third overload inflates CRect by the number of units specified in each member of the parameter.

Example

CRect   rect1(100, 235, 200, 335);
CPoint  pt(35, 65);
CRect   rect2(135, 300, 235, 400);

rect1 += pt;
ASSERT(rect1 == rect2);

CRect:: operator-=CRect::operator -=

最初の2つのオーバーロードは、 CRect 指定されたオフセットによって移動します。The first two overloads move CRect by the specified offsets.

void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();

パラメーターParameters

視点point
四角形を移動する単位の数を指定する ポイント 構造体または CPoint オブジェクト。A POINT structure or CPoint object that specifies the number of units to move the rectangle.

sizesize
四角形を移動する単位の数を指定する サイズ 構造体または CSize オブジェクト。A SIZE structure or CSize object that specifies the number of units to move the rectangle.

lpRectlpRect
CRect 各辺を収縮する単位数を格納している RECT 構造体またはオブジェクトを指し CRect ます。Points to a RECT structure or CRect object that contains the number of units to deflate each side of CRect.

解説Remarks

パラメーターの xy (または cxcy ) の値はから減算され CRect ます。The parameter's x and y (or cx and cy) values are subtracted from CRect.

3番目のオーバーロードは、 CRect パラメーターの各メンバーで指定された単位数で縮小ます。The third overload deflates CRect by the number of units specified in each member of the parameter. このオーバーロードは DeflateRectのように機能することに注意してください。Note that this overload functions like DeflateRect.

Example

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);

rect1 -= pt;
CRect   rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);

CRect:: operator &=CRect::operator &=

CRectとの積集合に等しいを設定し CRect rect ます。Sets CRect equal to the intersection of CRect and rect.

void operator&=(const RECT& rect) throw();

パラメーターParameters

rectrect
RECT またはが含まれてい CRect ます。Contains a RECT or CRect.

解説Remarks

交差部分は、両方の四角形に含まれる最大の四角形です。The intersection is the largest rectangle that is contained in both rectangles.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect:: IntersectRect」の例を参照してください。See the example for CRect::IntersectRect.

CRect:: operator |=CRect::operator |=

CRectとの和集合に等しいを設定し CRect rect ます。Sets CRect equal to the union of CRect and rect.

void operator|=(const RECT& rect) throw();

パラメーターParameters

rectrect
に、またはの四角形が含まれてい CRect ます。 Contains a CRect or RECT.

解説Remarks

共用体は、両方のソース四角形を含む最小の四角形です。The union is the smallest rectangle that contains both source rectangles.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);

rect1 |= rect2;
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect1);

CRect:: operator +CRect::operator +

最初の2つのオーバーロードは、 CRect CRect 指定されたオフセットによって置き換えられると等しいオブジェクトを返します。The first two overloads return a CRect object that is equal to CRect displaced by the specified offsets.

CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();

パラメーターParameters

視点point
戻り値を移動する単位の数を指定する ポイント 構造体または CPoint オブジェクト。A POINT structure or CPoint object that specifies the number of units to move the return value.

sizesize
戻り値を移動する単位の数を指定する サイズ 構造体または CSize オブジェクト。A SIZE structure or CSize object that specifies the number of units to move the return value.

lpRectlpRect
CRect 戻り値の各辺を膨張させる単位数を格納する RECT 構造体またはオブジェクトを指します。Points to a RECT structure or CRect object that contains the number of units to inflate each side of the return value.

戻り値Return Value

CRect CRect パラメーターで指定した単位数だけ移動または拡大した結果の。The CRect resulting from moving or inflating CRect by the number of units specified in the parameter.

解説Remarks

パラメーターの xy (または cx 、および cy ) パラメーターがの位置に追加され CRect ます。The parameter's x and y (or cx and cy) parameters are added to CRect's position.

3番目のオーバーロードは、 CRect CRect パラメーターの各メンバーで指定された単位数によって大きくなると等しい新しいを返します。The third overload returns a new CRect that is equal to CRect inflated by the number of units specified in each member of the parameter.

Example

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect   rect2;

rect2 = rect1 + pt;
CRect   rectResult(135, 300, 235, 400);
ASSERT(rectResult == rect2);

CRect:: operator-CRect::operator -

最初の2つのオーバーロードは、 CRect CRect 指定されたオフセットによって置き換えられると等しいオブジェクトを返します。The first two overloads return a CRect object that is equal to CRect displaced by the specified offsets.

CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();

パラメーターParameters

視点point
CPoint 戻り値を移動する単位の数を指定するポイント構造またはオブジェクト。A POINT structure or CPoint object that specifies the number of units to move the return value.

sizesize
CSize 戻り値を移動する単位の数を指定するサイズ構造体またはオブジェクト。A SIZE structure or CSize object that specifies the number of units to move the return value.

lpRectlpRect
CRect 戻り値の各辺を収縮する単位数を格納している RECT 構造体またはオブジェクトを指します。Points to a RECT structure or CRect object that contains the number of units to deflate each side of the return value.

戻り値Return Value

CRect CRect パラメーターで指定した単位数だけ移動または deflating した結果の。The CRect resulting from moving or deflating CRect by the number of units specified in the parameter.

解説Remarks

パラメーターの x および y (または cx および cy ) パラメーターは、の位置から減算され CRect ます。The parameter's x and y (or cx and cy) parameters are subtracted from CRect's position.

3番目のオーバーロードは、 CRect CRect パラメーターの各メンバーで指定された単位数によって deflated に等しい新しいを返します。The third overload returns a new CRect that is equal to CRect deflated by the number of units specified in each member of the parameter. このオーバーロードは、 SubtractRectではなくDeflateRectのように機能することに注意してください。Note that this overload functions like DeflateRect, not SubtractRect.

Example

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect   rect2;

rect2 = rect1 - pt;
CRect   rectResult(65, 170, 165, 270);
ASSERT(rect2 == rectResult);

CRect:: operator &CRect::operator &

CRectと rect2 の積集合であるを返し CRect ます。 Returns a CRect that is the intersection of CRect and rect2.

CRect operator&(const RECT& rect2) const throw();

パラメーターParameters

rect2rect2
RECT またはが含まれてい CRect ます。Contains a RECT or CRect.

戻り値Return Value

CRectと rect2 の積集合で CRect ある。A CRect that is the intersection of CRect and rect2.

解説Remarks

交差部分は、両方の四角形に含まれる最大の四角形です。The intersection is the largest rectangle that is contained in both rectangles.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3 = rect1 & rect2;
CRect   rectResult(100, 100, 200, 200);
ASSERT(rectResult == rect3);

CRect:: operator |CRect::operator |

CRectと rect2 の和集合であるを返し CRect ます。 Returns a CRect that is the union of CRect and rect2.

CRect operator|(const RECT&
rect2) const throw();

パラメーターParameters

rect2rect2
RECT またはが含まれてい CRect ます。Contains a RECT or CRect.

戻り値Return Value

CRectと rect2 の和集合で CRect ある。A CRect that is the union of CRect and rect2.

解説Remarks

共用体は、両方の四角形を含む最小の四角形です。The union is the smallest rectangle that contains both rectangles.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3 = rect1 | rect2;
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);

CRect::P の実行CRect::PtInRect

指定した点が内にあるかどうかを判断し CRect ます。Determines whether the specified point lies within CRect.

BOOL PtInRect(POINT point) const throw();

パラメーターParameters

視点point
POINT構造体またはCPointオブジェクトが含まれています。Contains a POINT structure or CPoint object.

戻り値Return Value

ポイントが内にある場合は0以外 CRect 。それ以外の場合は0。Nonzero if the point lies within CRect; otherwise 0.

解説Remarks

位置が CRect 左側または上側にある場合、または4辺のいずれかにある場合、ポイントは内にあります。A point is within CRect if it lies on the left or top side or is within all four sides. 右または下の点が外側に CRect あります。A point on the right or bottom side is outside CRect.

注意

四角形が正規化されているか、この関数が失敗する可能性があります。The rectangle must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangle before calling this function.

Example

CRect rect(5, 5, 100, 100);
CPoint pt1(35, 50);
CPoint pt2(125, 298);

// this is true, because pt1 is inside the rectangle
ASSERT(rect.PtInRect(pt1));

// this is NOT true, because pt2 is outside the rectangle
ASSERT(!rect.PtInRect(pt2));

// note that the right and the bottom aren't inside
ASSERT(!rect.PtInRect(CPoint(35, 100)));
ASSERT(!rect.PtInRect(CPoint(100, 98)));

// but the top and the left are inside
ASSERT(rect.PtInRect(CPoint(5, 65)));
ASSERT(rect.PtInRect(CPoint(88, 5)));

// and that PtInRect() works against a POINT, too
POINT pt;
pt.x = 35;
pt.y = 50;
ASSERT(rect.PtInRect(pt));

CRect:: SetRectCRect::SetRect

の次元 CRect を指定した座標に設定します。Sets the dimensions of CRect to the specified coordinates.

void SetRect(int x1, int y1, int x2, int y2) throw();

パラメーターParameters

x1x1
左上隅の x 座標を指定します。Specifies the x-coordinate of the upper-left corner.

y1y1
左上隅の y 座標を指定します。Specifies the y-coordinate of the upper-left corner.

×x2
右下隅の x 座標を指定します。Specifies the x-coordinate of the lower-right corner.

y2y2
右下隅の y 座標を指定します。Specifies the y-coordinate of the lower-right corner.

Example

CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));

CRect:: SetRectEmptyCRect::SetRectEmpty

CRectすべての座標を0に設定して、null の四角形を作成します。Makes CRect a null rectangle by setting all coordinates to zero.

void SetRectEmpty() throw();

Example

CRect rect;
rect.SetRectEmpty();

// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());

CRect:: SIZECRect::SIZE

cx cy 戻り値のおよびメンバーには、の高さと幅が含まれ CRect ます。The cx and cy members of the return value contain the height and width of CRect.

CSize Size() const throw();

戻り値Return Value

のサイズを格納している CSize オブジェクト CRectA CSize object that contains the size of CRect.

解説Remarks

高さまたは幅は負の値にすることができます。Either the height or width can be negative.

注意

四角形が正規化されているか、この関数が失敗する可能性があります。The rectangle must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangle before calling this function.

Example

CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);

CRect:: SubtractRectCRect::SubtractRect

の次元を CRect からのの減算と同じに lpRectSrc2lpRectSrc1 ます。Makes the dimensions of the CRect equal to the subtraction of lpRectSrc2 from lpRectSrc1.

BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();

パラメーターParameters

lpRectSrc1lpRectSrc1
四角形を減算する RECT 構造体またはオブジェクトをポイントし CRect ます。Points to the RECT structure or CRect object from which a rectangle is to be subtracted.

lpRectSrc2lpRectSrc2
RECT CRect LpRectSrc1 パラメーターによって示される四角形から減算される構造体またはオブジェクトを指します。Points to the RECT structure or CRect object that is to be subtracted from the rectangle pointed to by the lpRectSrc1 parameter.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if the function is successful; otherwise 0.

解説Remarks

減算は、 lpRectScr1lpRectScr2 が交差していない、 lpRectScr1 内のすべての点を含む最小の四角形です。The subtraction is the smallest rectangle that contains all of the points in lpRectScr1 that are not in the intersection of lpRectScr1 and lpRectScr2.

LpRectSrc1 で指定された四角形は、 lpRectSrc2 によって指定された四角形が、x または y 方向の少なくとも1つの lpRectSrc1 によって指定された四角形と完全に重ならない場合、変更されません。The rectangle specified by lpRectSrc1 will be unchanged if the rectangle specified by lpRectSrc2 doesn't completely overlap the rectangle specified by lpRectSrc1 in at least one of the x- or y-directions.

たとえば、 lpRectSrc1 が (10, 10, 100100) で、 lpRectSrc2 が (50, 50, 150150) であった場合、 lpRectSrc1 が指す四角形は、関数が返されたときに変更されません。For example, if lpRectSrc1 were (10,10, 100,100) and lpRectSrc2 were (50,50, 150,150), the rectangle pointed to by lpRectSrc1 would be unchanged when the function returned. LpRectSrc1 が (10, 10, 100100) で、 lpRectSrc2 が (50, 10, 150150) である場合、 lpRectSrc1 が指す四角形には、関数が返されたときの座標 (10, 10, 50100) が格納されます。If lpRectSrc1 were (10,10, 100,100) and lpRectSrc2 were (50,10, 150,150), however, the rectangle pointed to by lpRectSrc1 would contain the coordinates (10,10, 50,100) when the function returned.

SubtractRect演算子 または 演算子-=と同じではありません。SubtractRect is not the same as operator - nor operator -=. これらの演算子はいずれもを呼び出しません SubtractRectNeither of these operators ever calls SubtractRect.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

RECT   rectOne;
RECT   rectTwo;

rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;

rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;

CRect   rectDiff;

rectDiff.SubtractRect(&rectOne, &rectTwo);
CRect   rectResult(10, 10, 50, 100);

ASSERT(rectDiff == rectResult);

// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion

CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;

rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);

CRect:: TopLeftCRect::TopLeft

座標は、に格納されている CPoint オブジェクトへの参照として返され CRect ます。The coordinates are returned as a reference to a CPoint object that is contained in CRect.

CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();

戻り値Return Value

四角形の左上隅の座標です。The coordinates of the top-left corner of the rectangle.

解説Remarks

この関数を使用すると、四角形の左上隅を取得または設定できます。You can use this function to either get or set the top-left corner of the rectangle. 代入演算子の左側にあるこの関数を使用して、コーナーを設定します。Set the corner by using this function on the left side of the assignment operator.

Example

CRect:: 小惑星」の例を参照してください。See the example for CRect::CenterPoint.

CRect:: UnionRectCRect::UnionRect

CRect2 つのソース四角形の和集合に等しいの大きさを作成します。Makes the dimensions of CRect equal to the union of the two source rectangles.

BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();

パラメーターParameters

lpRect1lpRect1
ソース四角形を格納している RECT またはを指し CRect ます。Points to a RECT or CRect that contains a source rectangle.

lpRect2lpRect2
RECT変換元の四角形を格納しているまたはを指し CRect ます。Points to a RECT or CRect that contains a source rectangle.

戻り値Return Value

共用体が空でない場合は0以外の。共用体が空の場合は0。Nonzero if the union is not empty; 0 if the union is empty.

解説Remarks

共用体は、両方のソース四角形を含む最小の四角形です。The union is the smallest rectangle that contains both source rectangles.

空の四角形の大きさは無視されます。つまり、高さのない四角形や幅のない四角形です。Windows ignores the dimensions of an empty rectangle; that is, a rectangle that has no height or has no width.

注意

両方の四角形が正規化されているか、この関数が失敗する可能性があります。Both of the rectangles must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangles before calling this function.

Example

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3.UnionRect(&rect1, &rect2);
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);

CRect:: WidthCRect::Width

CRect右側の値から左の値を減算することによっての幅を計算します。Calculates the width of CRect by subtracting the left value from the right value.

int Width() const throw();

戻り値Return Value

の幅 CRectThe width of CRect.

解説Remarks

幅には負の値を指定できます。The width can be negative.

注意

四角形が正規化されているか、この関数が失敗する可能性があります。The rectangle must be normalized or this function may fail. NormalizeRectを呼び出して、この関数を呼び出す前に四角形を正規化することができます。You can call NormalizeRect to normalize the rectangle before calling this function.

Example

CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);

関連項目See also

CPoint クラスCPoint Class
CSize クラスCSize Class
RECTRECT