CDC::RoundRect
Visual Studio 2012
Draws a rectangle with rounded corners using the current pen.
BOOL RoundRect( int x1, int y1, int x2, int y2, int x3, int y3 ); BOOL RoundRect( LPCRECT lpRect, POINT point );
The interior of the rectangle is filled using the current brush.
The figure this function draws extends up to but does not include the right and bottom coordinates. This means that the height of the figure is y2 – y1 and the width of the figure is x2 – x1. Both the height and the width of the bounding rectangle must be greater than 2 units and less than 32,767 units.
void CDCView::DrawRoundRect(CDC* pDC) { // create and select a solid blue brush CBrush brushBlue(RGB(0, 0, 255)); CBrush* pOldBrush = pDC->SelectObject(&brushBlue); // create and select a thick, black pen CPen penBlack; penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); CPen* pOldPen = pDC->SelectObject(&penBlack); // get our client rectangle CRect rect; GetClientRect(rect); // shrink our rect 20 pixels in each direction rect.DeflateRect(20, 20); // Draw a thick black rectangle filled with blue // corners rounded at a 17-unit radius. Note that // a radius of three or less is not noticable because // the pen is three units wide. pDC->RoundRect(rect, CPoint(17, 17)); // put back the old objects pDC->SelectObject(pOldBrush); pDC->SelectObject(pOldPen); }