RoundRect (hdc, xLeft, yTop, xRight, yBottom, xCornerEllipse, yCornerEllipse) ;
Windows使用一个小椭圆来画圆角,这个椭圆的宽为xCornerEllipse,高为yCornerEllipse。可以想象这个小椭圆分为了四个部分,一个象限一个,每个刚好用在矩形的一个角上。xCornerEllipse和yCornerEllipse的值越大,角就越明显。如果xCornerEllipse等于xLeft与xRight的差,且yCornerEllipse等于yTop与yBottom的差,那么RoundRect函数将画出一个椭圆。
在绘制图5-8所示的圆角矩形时,用了下面的公式来计算角上椭圆的尺寸。
xCornerEllipse = (xRight - xLeft) / 4 ; yCornerEllipse = (yBottom- yTop) / 4 ;
这是一种简单的方法,但是结果看起来有点不对劲,因为角的弯曲部分在矩形长的一边要大些。要矫正这一问题,您可以让xCornerEllipse与yCornerEllipse的值相等。
Arc、Chord和Pie函数都只要相同的参数:
Arc(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ; //弧 Chord(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd); //弦 Pie(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd); //扇形
所有xStart, yStart, xEnd, yEnd都是表示中心点和坐标连成的直线和椭圆的交点。