关于VB6.0中一段代码的修改本帖最后由 bcrun 于 2013-01-20 19:21:41 编辑Sub PaintColor(objName As Obje
关于VB6.0中一段代码的修改
本帖最后由 bcrun 于 2013-01-20 19:21:41 编辑
Sub PaintColor(objName As Object, sigRedUp As Single, sigGreenUp As Single, sigBlueUp As Single, _
sigRedDn As Single, sigGreenDn As Single, sigBlueDn As Single)
'垂直渐变
On Error Resume Next
Dim objHeight As Single
Dim RedInfo As Single, GreenInfo As Single, BlueInfo As Single
Dim Red As Single, Green As Single, Blue As Single
objHeight = objName.ScaleHeight
RedInfo = (sigRedDn - sigRedUp) / objHeight
GreenInfo = (sigGreenDn - sigGreenUp) / objHeight
BlueInfo = (sigBlueDn - sigBlueUp) / objHeight
For i = 0 To objHeight - 1
Red = sigRedUp + i * RedInfo
Green = sigGreenUp + i * GreenInfo
Blue = sigBlueUp + i * BlueInfo
objName.ForeColor = RGB(Red, Green, Blue)
objName.Line (0, i)-(objName.ScaleWidth - 1, i)
Next i
End Sub
代码如上,如何把它改成水平渐变
[解决办法]本帖最后由 bcrun 于 2013-01-28 11:36:59 编辑 Sub PaintColor(objName As Object, sigRedUp As Single, sigGreenUp As Single, sigBlueUp As Single, _
sigRedDn As Single, sigGreenDn As Single, sigBlueDn As Single)
'垂直渐变
On Error Resume Next
Dim objHeight As Single
dim objW as single
Dim RedInfo As Single, GreenInfo As Single, BlueInfo As Single
Dim Red As Single, Green As Single, Blue As Single
'objHeight = objName.ScaleHeight
objW = objName.Scalewidth
RedInfo = (sigRedDn - sigRedUp) / objHeight
GreenInfo = (sigGreenDn - sigGreenUp) / objHeight
BlueInfo = (sigBlueDn - sigBlueUp) / objHeight
For i = 0 To objW - 1
Red = sigRedUp + i * RedInfo
Green = sigGreenUp + i * GreenInfo
Blue = sigBlueUp + i * BlueInfo
objName.ForeColor = RGB(Red, Green, Blue)
' objName.Line (0, i)-(objName.ScaleWidth - 1, i)
objName.Line (i, 0)-(i,objName.Scaleheigjt - 1)
Next i
End Sub