ColorRGB = GetPixel(g_WindowsDC, X, Y) Str = Strings.Left(Hex(RGB) & "000000", 9)
R = Mid(Str, 1, 2)
Rr = CDec("&H" & R)
Text2.Text = Rr
RGB颜色数字一共有9位对吧.怎么把我上面代码的2改为3,Text2.Text显示却有4位呢.RGB的范围是0-255吧.Text2.Text是怎么算出来的.....
Str = Strings.Left(Hex(RGB) & "000000", 9)中的"000000"是什么意思.去掉了程序又要报错.里面的9是不是表示一共有9位字符串的意思?
R = Mid(Str, 1, 2)
Rr = CDec("&H" & R)
Text2.Text = Rr
RGB颜色数字一共有9位对吧.怎么把我上面代码的2改为3,Text2.Text显示却有4位呢.RGB的范围是0-255吧.Text2.Text是怎么算出来的.....
Str = Strings.Left(Hex(RGB) & "000000", 9)中的"000000"是什么意思.去掉了程序又要报错.里面的9是不是表示一共有9位字符串的意思?
表示取左面9位字符
去掉就不够位数了
为什么还要加"000000"
r = Mid(Hex(colorrgb), 1, 2) ' 将这个颜色转为16进制后取前面2位
rr = CDec("&H" & r) ' 将取得的两位16进制数转为十进制数Text2.Text = rr就行,没必要再取个9位。CDec函数将一个十六进制转成了十进制,所以Text2就得出结果了啊。
'-----------------------------------------------------------------------------------
'获得 RGB 颜色,传入的颜色可以是系统色,RGB 以 ByRef 的方式进行写入
'-----------------------------------------------------------------------------------
Public Sub GetRGB(ByVal Color As Long, Red As Long, Green As Long, Blue As Long)
If Color < 0 Then Color = GetSysColor(Color And &HFF)
Red = Color And &HFF&
Green = (Color And &HFF00&) \ &H100
Blue = (Color And &HFF0000) \ &H10000
End Sub