CRect::PtInRect
更新 : 2007 年 11 月
指定された点が CRect 内にあるかどうかを調べます。
BOOL PtInRect(
POINT point
) const throw( );
パラメータ
戻り値
点が CRect 内部にある場合は 0 以外の値を返します。それ以外の場合は 0 を返します。
解説
点が左辺上または上辺上にあるときか上下左右の 4 辺内にあるときは、その点は CRect の内部にあることになります。点が右辺上か下辺上にあるときは、その点は CRect の外側にあることになります。
メモ : |
---|
四角形が正規化されていない場合、この関数は失敗することがあります。この関数を呼び出す前に NormalizeRect 関数を呼び出して四角形を正規化することもできます。 |
使用例
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));
必要条件
ヘッダー : atltypes.h