2012-05-28 60 views
1

rounded rectaangle 我正在使用RoundRect Windows API繪製圓角矩形。使用RoundRect的圓角不光滑

RoundRect(hdc,0,0,100,100,4,4); 

在這裏,我畫的矩形圓角寬度和高度= 4像素。

之後,我想填充圓角矩形。對於我創建使用

CreateRoundRectRgn 

,然後調用 FillRgn API矩形區域。

問題是,填充後我可以看到圓角外的填充顏色。由於我正在創建四捨五入區域,因此填充只應在該區域內。

任何想法,爲什麼它走出圓角矩形?

回答

3

RoundRect已使用當前畫筆填充矩形。只需使用SelectObject即可選擇所需的筆刷。

這使得下面的觀察有點多餘。 RoundRectCreateRoundRectRgn不同地解釋座標。 RoundRect的座標是包含的,但CreateRoundRectRgn在右下方是排他性的(所以你必須在後一種情況下將右下角座標加1)。

因爲Windows不提供一個函數來獲取相應的圓角矩形內部的區域,如果你自己(一個圓角矩形的內部填充它,你將永遠不會得到完美的像素精度不與稍小的圓角矩形相同)。