как закруглить углы у фигуры?

WM_PAIN:
{
    Paint(hdc);
}

Paint(HDC hdc)
{
...
     Graphics* gt = new Graphics(hdc);
     g->FillRectangle(redBrush, rect);
...
}

Можно как-то у этого прямоугольника чуть-чуть закруглить углы? Нашел такой способ:

void DrawCell(HDC& hdc, const RECT& rcTarget,const HBRUSH& hbrUpper, const HBRUSH& hbrLower)
    {

        HRGN hRgnUpper = CreateRoundRectRgn(rcTarget.left, rcTarget.top, rcTarget.right, rcTarget.bottom, 42, 38);      
        HRGN hRgnLower = CreateRoundRectRgn(rcTarget.left, rcTarget.top, rcTarget.right, rcTarget.bottom, 42, 38);

        HRGN hRgnCutFromUpper = CreateRectRgn(rcTarget.left, rcTarget.top + ((rcTarget.bottom - rcTarget.top) / 2), rcTarget.right, rcTarget.bottom);       
        HRGN hRgnCutFromLower = CreateRectRgn(rcTarget.left, rcTarget.top , rcTarget.right, rcTarget.bottom - ((rcTarget.bottom - rcTarget.top) / 2));      

        CombineRgn(hRgnUpper, hRgnUpper,hRgnCutFromUpper, RGN_DIFF);
        CombineRgn(hRgnLower, hRgnLower,hRgnCutFromLower, RGN_DIFF);


        FillRgn( hdc, hRgnUpper, hbrUpper);      
        FillRgn( hdc, hRgnLower, hbrLower);  

        DeleteObject(hRgnCutFromLower);
        DeleteObject(hRgnCutFromUpper);
        DeleteObject(hRgnLower);
        DeleteObject(hRgnUpper);



    }

Но тут углы пиксельные и не используется GDI+


Ответы (0 шт):