新年快乐--询问新年第一个问题--关于VB中的颜色
大家都知道,VB中颜色可以用诸如&H8000000F&这样的代码表示!
但如果我知道一颜色的红、绿、蓝的值是多少,怎么才可以把他翻译成上边的那种代码表示形式!(用什么方法或软件)
如(红190 绿200 蓝210)
谢谢!给大家拜个晚年!
问题点数:50、回复次数:7Top
1 楼XLYT(雨田)回复于 2003-02-03 19:57:31 得分 5
rgb函数。到MSDN里找找。Top
2 楼ipqn(i.Posei)回复于 2003-02-03 20:00:55 得分 0
可否给出一个实例!Top
3 楼ipqn(i.Posei)回复于 2003-02-03 20:01:15 得分 0
或连接!Top
4 楼ipqn(i.Posei)回复于 2003-02-03 20:02:52 得分 0
我知道了!
lab.ForeColor = RGB(190,200,210)
Top
5 楼xxlroad(土八路)回复于 2003-02-03 20:32:41 得分 20
Private Function Red(ByVal mlColor As Long) As Long
'从RGB值中获得红色值
Red = mlColor And &HFF
End Function
Private Function Green(ByVal mlColor As Long) As Long
'从RGB值中获得绿色值
Green = (mlColor \ &H100) And &HFF
End Function
Private Function Blue(ByVal mlColor As Long) As Long
''从RGB值中获得蓝色值
Blue = (mlColor \ &H10000) And &HFF
End FunctionTop
6 楼ipqn(i.Posei)回复于 2003-02-05 11:01:09 得分 0
怎么才可以把他翻译成上边的那种代码表示形式Top
7 楼xxlroad(土八路)回复于 2003-02-05 13:03:18 得分 25
Private Sub Command1_Click()
'可以从十进制转换到任意进制
Print 10, tento(10, 16) 'A
Print 11, tento(11, 16) 'B
Print 12, tento(12, 16) 'C
Print 39, tento(39, 16) '27
Print RGB(111, 112, 113), tento(RGB(111, 112, 113), 16)
End Sub
'************************辅助函数,可以从十进制转换到任意进制**********************
'//入口为十进制数,要转换的进制,返回为该进制数
Public Function tento(m As Long, n As Long) As String
Dim q As Long
Dim r As Long
tento = ""
Dim bStr As String
Do
Call myDivide(m, n, q, r)
If r > 9 Then
bStr = Chr(55 + r)
Else
bStr = Str(r)
End If
tento = Trim(bStr) & tento
m = q
Loop While q <> 0
End Function
'************************辅助过程,得到任意两个数的商和余数***************************
Public Sub myDivide(num1 As Long, num2 As Long, q As Long, r As Long)
If num2 = 0 Then
MsgBox ("非法除数")
Exit Sub
End If
If num1 / num2 >= 0 Then
q = Int(num1 / num2)
Else
q = Int(num1 / num2) + 1
End If
r = num1 Mod num2
End SubTop




