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