Declare Function EqualRgn Lib "gdi32" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long
EqualRgn определяет, содержат ли две области (региона) точно такую же область. Хотя описатели региона будут конечно различны, они могут обращаться) к регионам идентичного размера, формы и позиции.
Функция возвращает ненулевое значение, если две области относятся к идентичным областям или 0, если они относятся к различным областям.
' Иллюстрируем равные и неравные регионы. ' Сравниваем три различных области, два из них одинаковы, ' а третья не равна им Dim hRgn1 As Long, hRgn2 As Long, hRgn3 As Long ' три области Dim areequal As Long ' индикатор равно-неравно Dim retval As Long ' возвращаемое значение ' три региона-эллипсы hRgn1 = CreateEllipticRgn(20, 30, 120, 80) hRgn2 = CreateEllipticRgn(20, 30, 120, 80) hRgn3 = CreateEllipticRgn(50, 50, 200, 150) ' сравниваем первые два региона (должны быть одинаковыми) areequal = EqualRgn(hRgn1, hRgn2) ' индикатор должен иметь ненулевое значение If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны" ' сравниваем первый и третий эллипсы areequal = EqualRgn(hRgn1, hRgn3) ' индикатор должен быть нулевым If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны" End If ' удаляем все регионы для высвобождения ресурсов retval = DeleteObject(hRgn1) retval = DeleteObject(hRgn2) retval = DeleteObject(hRgn3)