在 MFC(Microsoft Foundation Classes)中,CRect 类提供了名为 IntersectRect 的公共方法。IntersectRect 方法用于计算两个矩形的交集,得到它们的重叠部分。

以下是 CRect::IntersectRect 方法的签名:
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2);

这个方法接受两个 RECT 结构作为参数,用于指定两个矩形。如果两个矩形有重叠部分,IntersectRect 方法将修改调用它的 CRect 对象,使其成为两个矩形的交集。如果两个矩形没有重叠部分,返回值为 FALSE。

以下是一个示例用法:
CRect rect1(10, 20, 50, 70);
CRect rect2(30, 40, 70, 90);
CRect intersectionRect;

// 计算两个矩形的交集
BOOL result = intersectionRect.IntersectRect(&rect1, &rect2);

if (result)
{
    // 输出交集矩形的坐标
    TRACE(_T("交集矩形左上角坐标:%d, %d\n"), intersectionRect.left, intersectionRect.top);
    TRACE(_T("交集矩形右下角坐标:%d, %d\n"), intersectionRect.right, intersectionRect.bottom);
}
else
{
    TRACE(_T("两个矩形没有重叠部分。\n"));
}

在上述代码中,IntersectRect 方法被用于计算两个矩形的交集,并输出交集矩形的坐标信息。这对于在图形界面编程中判断矩形是否相交以及获取相交部分的信息非常有用。


转载请注明出处:http://www.pingtaimeng.com/article/detail/22047/MFC/CRect