当前位置: 代码迷 >> VB >> 关于VB6.0中一段代码的批改
  详细解决方案

关于VB6.0中一段代码的批改

热度:5051   发布时间:2013-02-26 00:00:00.0
关于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 


  相关解决方案