vb , windows自带的颜色选择器选中的颜色值
发布网友
发布时间:2022-05-27 12:55
我来回答
共2个回答
热心网友
时间:2023-10-23 21:07
这个数值是一个24位的长整型数,其中第1到8位为红色值,第9到16位为绿色值,第17位到24位为蓝色值。换句话说,如果把这个长整数转为16进制,那么它就是类似 5EA80B 这样的长度为6的字符串,其中0B代表红色,A8代表绿色,5E代表蓝色。
如果你想从这个颜色值之中分解出红绿蓝三原色值,可以这样计算:
红色值 = 颜色值 Mod &H100
绿色值 = 颜色值 \ &H100 Mod &H100
蓝色值 = 颜色值 \ &H10000
而如果想把红绿蓝三原色值转为颜色值可以用VB内置的函数RGB():
颜色值 = RGB(红色值, 绿色值, 蓝色值)追问这个获取到的值字节大概在1-8位的,请问怎么转换为web色呢?
追答VB中的颜色与Web颜色的最大区别,就是他们的红色值与蓝色值的位置是相反的,所以只要把VB中获得的颜色值的红色与蓝色互换位置即可:
c = CommonDialog1.Color
r = c Mod &H100
g = c \ &H100 Mod &H100
b = c \ &H10000
webc = Hex(RGB(b, g, r)) 'b和r的位置互换
热心网友
时间:2023-10-23 21:08
获取到的是16进制的数值,其实自定义颜色值就可以了,不一定要用系统自带颜色的值,可以用RGB格式的颜色值 :
例如设置Label1的背景颜色为红色,代码为:
Label1.Backcolor=RGB(255,0,0)
或者是
Label1.Backcolor=vbRed
我也在学编程,我们可以一起学习。
望采纳追问如Label1.Backcolor=RGB(255,0,0)
这样的颜色值是固定的,
我是想通过颜色选择器选择颜色后,控件获取到颜色值,比如是蓝色,文本获取到的值为12345678(这个值是根据颜色的不同而不同的),怎么把这个值转为web颜色呢,我起初用的是hex,这个方法网上也有很多人用,但是不精准,
我也是在自学,爱好这个