imperialeast 发表于 2026-6-9 13:05:27

在vb上画彩色渐近过度的彩色块

本帖最后由 imperialeast 于 2026-6-13 06:37 编辑

最近写了一个vb专用的彩色条,dll,
Private Sub Command1_Click()
Dim VV As COLORBARINFO
Me.Cls
With VV
   .IsHorizontal = True
   .Colors = Array(vbRed, vbYellow, vbBlue, &H80FF&, vbGreen, &HFF00FF, &HFFFF00)
   .Height = 200
   .Width = 200
End With
DrawColorBar Me, VV
End Sub

Private Sub Command2_Click()
Dim VV As COLORBARINFO
Picture1.Cls
With VV
   .IsHorizontal = True
   .Colors = Array(vbRed, vbYellow)
   .Height = 200
   .Width = 200
End With
DrawColorBar Picture1, VV
End Sub



比较小实现绘图如下效果

YY菌 发表于 2026-6-10 10:15:32

我来提一个思路:用StretchDIBits直接把一维的颜色数组当作 宽度=数组长度 高度=1 的图像数据传给StretchDIBits,直接拉伸成目标尺寸(注意要先用SetStretchBltMode开启HALFTONE的双线性插值模式)。

tlwh163 发表于 2026-6-10 18:17:56

本帖最后由 tlwh163 于 2026-6-10 18:19 编辑

YY菌 发表于 2026-6-10 10:15
我来提一个思路:用StretchDIBits直接把一维的颜色数组当作 宽度=数组长度 高度=1 的图像数据传给StretchDI ...

大佬思维! 那是不是我可以在指定颜色的时候 就画好一个 比如100像素高的 备用图 然后就是bitblt

YY菌 发表于 2026-6-11 16:03:18

tlwh163 发表于 2026-6-10 18:17
大佬思维! 那是不是我可以在指定颜色的时候 就画好一个 比如100像素高的 备用图 然后就是bitblt
...

但是需要考虑用户参数是动态传入的嘛
页: [1]
查看完整版本: 在vb上画彩色渐近过度的彩色块