Статья: Работа с регионами в Visual C++

// создаём второй регион в другом месте.

// --------------------------------------------------

HRGN hRegion2 = CreateEllipticRgn(140,100,300,240);

OffsetRgn(hRegion2, GetSystemMetrics(SM_CXBORDER)*4, GetSystemMetrics(SM_CYCAPTION));

// --------------------------------------------------

// совмещаем два региона по принципу:

// hRegion1 = hRegion1 + hRegion2.

// --------------------------------------------------

CombineRgn(hRegion1, hRegion1, hRegion2, RGN_OR);

// --------------------------------------------------

// прикрепляем итоговый регион к окну

// --------------------------------------------------

SetWindowRgn(hWnd, hRegion1, true);

// --------------------------------------------------

// удаляем объекты регионов

// --------------------------------------------------

DeleteObject(hRegion1);

DeleteObject(hRegion2);

// --------------------------------------------------

// изменяем стиль окна (избавляемся от заголовка)

// --------------------------------------------------

DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE);

dwStyle &= ~(WS_CAPTION|WS_SIZEBOX);

SetWindowLong(hWnd, GWL_STYLE, dwStyle);

// --------------------------------------------------

// перерисовываем окно, а так же убираем рамку окна, чтобы

// чтобы нельзя было менять его размер

// --------------------------------------------------

InvalidateRect(hWnd, NULL, TRUE);

К-во Просмотров: 499
Бесплатно скачать Статья: Работа с регионами в Visual C++