Функция IntersectRect

Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, _
    lpSrc2Rect As RECT) As Long

IntersectRect создает прямоугольник, являющий пересечением двух прямоугольников. Этот прямоугольник, содержит все общие точки двух исходных прямоугольников

Возвращаемое значение

Если один или оба из исходных прямоугольников пуст или не имеется никакого пересечения, функция возвращает 0 и прямоугольник lpDestRect установлен в (0,0) - (0,0) (используйте GetLastError для получения кода ошибки). Если исходные прямоугольники пересекаются, пересечение помещается в lpDestRect и функция возвращает ненулевое значение

Параметры

lpDestRect
Прямоугольник, который будет установлен как пересечение из двух исходных прямоугольников
lpSrc1Rect
Первый исходный прямоугольник
lpSrc2Rect
Второй исходный прямоугольник

Пример

' Определим, накладываются ли окна Form1 и Form2 на
' экране. Если нет, то пересечение будет пустым
Dim intrect As RECT  ' получим результат пересечения
Dim window1 As RECT, window2 As RECT  ' получим прямоугольники Form1 и Form2
Dim result As Long  ' будет установлен в 0, если нет никакого пересечения или в 1, если имеется пересечение
Dim retval As Long  ' возвращаемое значение для других функций
' Получим прямоугольники Form1 и Form2
retval = GetWindowRect(Form1.hWnd, window1)
retval = GetWindowRect(Form2.hWnd, window2)
' Определяем перекрестный прямоугольник
result = IntersectRect(intrect, window1, window2) 
If result = 0  Then
  Debug.Print "Form1 и Form2 не накладываются на экране"
Else
  Debug.Print "Form1 и Form2 накладываются на экране"
End If

Смотри также

SubtractRect, UnionRect

Категория

Прямоугольники