我想画一个进度条,中间有百分比, 但我希望文本具有背景的负(对比)颜色。
因此,ProgressBar 填充部分上方的文本部分将为白色,未填充部分上方的部分将为黑色。
我可以简单地通过“作弊”来做到这一点
在此应用程序中,绘制文本两次对性能的影响可以忽略不计,但我很感兴趣是否有一些简单的方法可以通过 blending 只需两步即可完成(例如让进度条以某种方式反转已绘制的文本) .
你所做的一切都很好。像 SetROP2() 这样的老技巧在文本抗锯齿时不再起作用,尤其是在 ClearType 渲染时。颜色错误的混叠像素非常明显。因此 Graphics.CompositingMode 不再支持这些效果。
可以使用XOR来计算负(反转)颜色;
Public Function InvertColor(color As Long) As Long
Return (color Xor &HFFFFFF)
End Function