VB:求出commdialog 控件返回颜色的RGB值

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:03:30
如题。用commdialog控件.opencolor可以设置颜色值。我想转换成RGB值。求方法;

就是字符串处理的问题。
下面的i就是返回的颜色值,&Hfe0000是用来测试的,你可以看看结果,commdialog返回的是一个长整型的值,就是类似11321一类的,你直接传给i就可以了。

Sub getRGB()
Dim i As Long
Dim Str1 As String
Dim R1 As Long, G1 As Long, B1 As Long
i = Val("&Hfe0000")
Str1 = String(6 - Len(Hex(i)), "0") & Hex(i)
R1 = CLng("&H" & Mid(Str1, 1, 2))
G1 = CLng("&H" & Mid(Str1, 3, 2))
B1 = CLng("&H" & Mid(Str1, 5, 2))
MsgBox R1 & "-" & G1 & "-" & B1
End Sub
以上可以改成一个函数
Sub Function getRGB(iColor as long ) as string
Dim i As Long
Dim Str1 As String
Dim R1 As Long, G1 As Long, B1 As Long
i = iColor
Str1 = String(6 - Len(Hex(i)), "0") & Hex(i)
R1 = CLng("&H" & Mid(Str1, 1, 2))
G1 = CLng("&H" & Mid(Str1, 3, 2))
B1 = CLng("&H" & Mid(Str1, 5, 2))
getRGB= R1 & "-" & G1 & "-" & B1
End Function
你自己也可以改成返回三个分