CRect::IntersectRect 是 MFC(Microsoft Foundation Classes)中 CRect 类的一个公共方法,用于计算两个矩形的交集。这个方法的声明如下:
BOOL IntersectRect(const CRect& rect1, const CRect& rect2);

该方法会返回一个布尔值,表示两个矩形是否有交集。如果有交集,方法会修改调用它的 CRect 对象,使其成为两个输入矩形的交集矩形;如果没有交集,则不进行修改,返回 FALSE。

以下是一个示例代码,演示了 CRect::IntersectRect 的用法:
#include <afxwin.h>

int main() {
    CRect rect1(0, 0, 100, 100);
    CRect rect2(50, 50, 150, 150);
    CRect intersectionRect;

    BOOL hasIntersection = intersectionRect.IntersectRect(rect1, rect2);

    if (hasIntersection) {
        // 有交集,intersectionRect 现在包含两个矩形的交集
        TRACE(_T("Intersection Rect: (%d, %d, %d, %d)\n"),
            intersectionRect.left, intersectionRect.top,
            intersectionRect.right, intersectionRect.bottom);
    } else {
        // 没有交集
        TRACE(_T("No intersection.\n"));
    }

    return 0;
}

在这个示例中,rect1 表示一个左上角坐标为 (0, 0),右下角坐标为 (100, 100) 的矩形,rect2 表示一个左上角坐标为 (50, 50),右下角坐标为 (150, 150) 的矩形。IntersectRect 方法会计算它们的交集,并将结果存储在 intersectionRect 中。如果两个矩形有交集,hasIntersection 会为真,然后可以使用 intersectionRect 获取交集的坐标。


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