Комбинирование областей

Функция 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 в пикселах, используемой для рисования границы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: