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 .

Hosted by uCoz