CRgn::CreateRoundRectRgn
Создает прямоугольная область со скругленными углами, хранящиеся в объекте CRgn.
BOOL CreateRoundRectRgn(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
Параметры
x1
Указывает логическое верхн- координату по оси x левого угла области.y1
Указывает логическое верхн- координату по оси y верхнего левого угла области.x2
Указывает логическую пару координат (x низк- правого угла области.y2
Указывает логическое низк- координату по оси y правого угла области.x3
Указывает ширину эллипса, используемого для создания округленные углы.y3
Указывает высоту эллипса, используемого для создания округленные углы.
Возвращаемое значение
Ненулевой, если операция завершилась успешно; в противном случае – значение 0.
Заметки
Размер области ограничен 32.767 32.767 логическими модулями или 64K памяти, какая из этих величин меньше.
Когда приложение завершила использование область, созданную с помощью функции CreateRoundRectRgn, оно должно выделить области из контекста устройства и использование функции-члена CGDIObject::DeleteObject, чтобы удалить их.
Пример
CRgn rgnA, rgnB, rgnC;
VERIFY(rgnA.CreateRoundRectRgn( 50, 50, 150, 150, 30, 30 ));
VERIFY(rgnB.CreateRoundRectRgn( 200, 75, 250, 125, 50, 50 ));
VERIFY(rgnC.CreateRectRgn( 0, 0, 50, 50 ));
int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_OR );
ASSERT( nCombineResult != ERROR && nCombineResult != NULLREGION );
CBrush brA, brB, brC;
VERIFY(brA.CreateSolidBrush( RGB(255, 0, 0) ));
VERIFY(pDC->FillRgn( &rgnA, &brA)); // rgnA Red Filled
VERIFY(brB.CreateSolidBrush( RGB(0, 255, 0) ));
VERIFY(pDC->FillRgn( &rgnB, &brB)); // rgnB Green Filled
VERIFY(brC.CreateSolidBrush( RGB(0, 0, 255) )); // rgnC Blue
VERIFY(pDC->FrameRgn( &rgnC, &brC, 2, 2 ));
Требования
Header: afxwin.h