Функция EqualRgn

Declare Function EqualRgn Lib "gdi32.dll" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long

Платформа: Win 95/98, Win NT

EqualRgn определяет, содержат ли две области(региона) точно такую же область. Хотя дескрипторы региона будут конечно различны, они могут обращаться) к регионам идентичного размера, формы, и позиции. Функция возвращает ненулевое значение, если эти две области относятся к идентичным областям, или 0, если они (относятся к различным областям.

hSrcRgn1
Первый из двух регионов для сравнения.
hSrcRgn2
Второй из двух регионов для сравнения.

Пример:

' Иллюстрируем равные и неравные регионы. Сравниваем 
' три различных области, два из них одинаковы,а третья
' не равна им.
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 "Равны"

' удаляем все регионы для высвобождения ресурсов.
retval = DeleteObject(hRgn1)
retval = DeleteObject(hRgn2)
retval = DeleteObject(hRgn3)

Категория: Регионы

В начало.