Функция CombineRegion позволяет вам изменить существующую область, скомбинировав ее из двух других:
int WINAPI CombineRgn(HRGN hrgnDest, // новая область HRGN hrgn1, // первая исходная область HRGN hrgn2, // вторая исходная область int fnCombineMode); // режим комбинирования, задается константойТаблица 14 Значения констант для режима комбинирования| Режим комбинирования | Описание |
| RGN_AND | Пересечение областей |
| RGN_OR | Объединение областей |
| RGN_XOR | Объединение областей с исключением перекрывающихся областей |
| RGN_DIFF | Область hrgn1, которая не входит в область hrgn2 |
| RGN_COPY | Область hrgn1 |
В зависимости от результата выполнения операции функция CombineRegion может вернуть одно из следующих значений:
Таблица 15 Значения констант, возвращаемые функцией CombineRegion| Значение | Описание |
| ERROR | Ошибка |
| NULLREGION | Новая область пустая |
| SIMPLEREGION | Новая область не является самопересекающейся (т. е. граница созданной области не пересекает саму себя) |
| COMPLEXREGION | Создана самопересекающаяся область |
Закрашивание области
BOOL WINAPI PaintRgn(HDC hdc, HRGN hrgn); // кисть берется из котекстаBOOL WINAPI FillRgn(HDC hdc, HRGN hrgn, HBRUSH hbrush); // кисть указана явноОкраска границы области
BOOL WINAPI FrameRgn(HDC hdc, HRGN hrgn, HBRUSH hbrush, int nWidth, int nHeight);Параметры nWidth и nHeight определяют, соответственно, ширину и высоту кисти hrgn в пикселах, используемой для рисования границы.






