我想为一个圆角矩形的一个边缘绘制渐变填充。

GradientFill


API的结合

BeginPath()
EndPath()
SelectClipPath()


API,但没有用。

由于RoundRect是Windows API,我们是否有一些Windows API在圆角矩形上执行渐变填充。

更具体地讲,我们可以限制渐变填充到任何边缘吗?

最佳答案

您可以使用GDI执行此操作。功能顺序为:

BeginPath
RoundRect
EndPath
WidenPath
SelectClipPath
GradientFill


这将使用渐变绘制圆角矩形的整个边框。密钥是WidenPath。这将在设备上下文中创建一个新路径,该路径等效于如果用当前笔笔划旧路径将要填充的区域。

如果只想在单个边缘上进行渐变,请在单个边缘上执行GradientFill。您可以轻松计算出边缘在哪里。

更新资料

如果您还想用渐变填充来填充内部,请先使用相同的功能序列而不使用WidenPath,然后绘制轮廓。将两者与BeginPath, RoundRect, EndPath, SaveDC, SelectClipPath, GradientFill, RestoreDC, WidenPath, SelectClipPath, GradientFill之类的东西结合在一起。

08-17 04:01