Declare Function IsRectEmpty Lib "user32" (lpRect As RECT) As Long
Функция возвращает ненулевое значение, если прямоугольник пуст и 0, если - нет (Win NT/2000: используйте GetLastError для получения кода ошибки)
' Определим, накладываются ли окна Form1 и Form2 ' Если нет, то перекрестный прямоугольник будет пуст Dim intrect As RECT ' получим перекрестный прямоугольник Dim window1 As RECT, window2 As RECT ' получим прямоугольники Form1 и Form2 Dim isempty As Long ' будет установлен в 0, если пересечение не пусто и 1, если нет Dim retval As Long ' возвращаемое значение для других функций ' Получим прямоугольники Form1 и Form2 retval = GetWindowRect(Form1.hWnd, window1) retval = GetWindowRect(Form2.hWnd, window2) retval = IntersectRect(intrect, window1, window2) ' определим перекрестный прямоугольник isempty = IsRectEmpty(intrect) ' определим, является ли он пустым - он будет таким, если не имеется никакого пересечения If isempty = 0 Then ' В этом случае, перекрестный прямоугольник будет также пуст Debug.Print "Form1 и Form2 накладываются на экране" Else Debug.Print "Form1 и Form2 не накладываются на экране" End If