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 и функция возвращает ненулевое значение
' Определим, накладываются ли окна 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