首先纠正一下,&HFFFFFFFF不是白色,正确的应该是&HFFFFFF,共三个字节,每个字节分别是红绿蓝三原色的分量值。如果用&HFFFFFFFF(这是四个字节),VB6会报错的。
其次,vbWhite是VB的内部常量,它的值就是&HFFFFFF(也就是十进制的16777215),所以不存在转换的问题。建议尽量使用类似vbWhite、vbRed、vbBlue这样的常量来表示颜色,因为它们很直观,即使不懂编程(但懂点英语)的人也知道它们就是白色、红色、蓝色的意思。
你可以自己在VB6的立即窗口验证一下我上面所述是否正确:
Print vbWhite '显示结果为16777215
Print Hex(vbWhite) '显示结果为FFFFFF
补充说一下,颜色的多种表示方式,其实它们最终的值都是相等的,并不需要所谓的转换,比如以下是纯蓝色的多种表示方式:
vbBlue
RGB(0, 0, 255)
&HFF0000
16711680
以上这些表示方式,其实它们的值都是一样的,都是等于16711680,你甚至可以拿它们直接来进行数学运算呢!
vbBlue + RGB(0, 0, 255) + &HFF0000 + 16711680 = 66846720
66846720 / 4 = 16711680
如果你是想让一个颜色值分解为红绿蓝三原色分量,可以这样:
color1 = vbWhite '这是白色
red = color1 Mod &H100 '这是红色分量
green = color1 \ &H100 Mod &H100 '这是绿色分量
blue = color1 \ &H10000 '这是蓝色分量
可以用ASDSEE软件打开后,另存为MPG格式或BMP格式就可了