如何绘制一个有两个圆角的矩形,相对的角是矩形角。必须关闭形状,以便可以使用画笔颜色填充。 Polyline方法不绘制曲线。我可以将弧的点添加到折线点吗?我尝试使用Canvas方法绘制RoundRect,然后在下圆角上重叠一个矩形,但是当我只绘制形状的边框而不填充它时,我无法弄清楚如何擦除矩形的上面一行。注意:如果您认为相关,我可以添加我使用的代码。
所需形状的样本:
我用Delphi获得的样本:
答案 0 :(得分:3)
您不必在绘制时填充形状。您可以先使用一系列TCanvas.LineTo()
和TCanvas.ArcTo()
/ TCanvas.AngleArc()
来创建形状,然后再调用TCanvas.FloodFill()
来填充它。
否则,您可以使用相同的填充颜色在TCanvas.Rectangle()
之上重叠TCanvas.RoundRect()
,然后使用TCanvas.MoveTo()
/ TCanvas.LineTo()
在相同的分界线上绘制填充颜色。
另一种选择是忘记使用TCanvas
绘图方法,而只是使用Win32 API调用。使用CreateRoundRectRgn()
,CreateRectRgn()
和CombineRn()
创建具有所需形状的HRGN
,然后使用FillRgn()
和FrameRgn()
来吸引您的TCanvas
使用HRGN
。