CombineRgn
CombineRgn
Функция CombineRgn объединяет две области и сохраняет результат в третьей. Две области объединяются согласно указанному режиму объединения.
int CombineRgn (
HRGN hrgnDest , // дескриптор результирующей области
HRGN hrgnSrc 1 , // дескриптор исходной области
HRGN hrgnSrc 2 , // дескриптор исходной области
int fnCombineMode // режим объединения областей
);
Параметры
hrgnDest - идентифицирует новую область с размерами, определяемыми двумя исходными областями (область должна существовать до вызова функции CombineRgn ).
hrgnSrc 1 - идентифицирует первую из двух исходных областей.
hrgnSrc 2 - идентифицирует вторую из двух исходных областей.
fnCombineMode - определяет режим объединения двух областей. Может принимать одно из следующих значений:
Значение
Пояснение
RGN_AND
Создается пересечение двух областей.
RGN_COPY
Создается копия области, идентифицируемой значением параметра hrgnSrc 1 .
RGN_DIFF
Объединяются те части области, идентифицируемой значением параметра hrgnSrc 1 , которые не являются частями области, идентифицируемой значением параметра hrgnSrc 2 .
RGN_OR
Создается объединение двух областей.
RGN_XOR
Создается объединение двух областей, за исключением любых пересекающихся участков.
Возвращаемые значения
Возвращаемое значение показывает сложность результирующей области и может принимать одно из следующих значений:
Значение
Пояснение
COMPLEXREGION
Область состоит более чем из одного прямоугольника
ERROR
Произошла ошибка
NULLREGION
Пустая область
SIMPLEREGION
Область является одиночным прямоугольником
Комментарии
Области могут совпадать друг с другом. Например, значение параметра hrgnSrc 1 может быть равно значению параметра hrgnDest .
См. также
CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn .