将旧的VB6 QBColor函数翻译为C#

3

我正在用C#重写一个VB6程序,这个VB程序使用了QBColor函数。

http://msdn.microsoft.com/en-us/library/d2dz8078(v=VS.80).aspx上,它说明了哪个数字对应哪种颜色。

此外,在http://msdn.microsoft.com/en-us/library/zc1dyw8b(v=VS.80).aspx上,它说微软认为的Blue0,0,255(真的没有异议)。但那么BlueLightBlue之间有什么区别呢?当这两个网页都提到蓝色时,它们不可能指的是同一种颜色吧?

是否有人能给出QBColor颜色的RGB转换表?我会怀疑:

QBColor(1)Blue等于RGB(0,0,128)

QBColor(9)LightBlue等于RGB(0,0,255)

2个回答

2

你是正确的。蓝色是(0,0,128)。


以下是从QBColor到RGB的代码:

Dim Color As Integer
Color = 1
Console.WriteLine(&HFF& And QBColor(Color))
Console.WriteLine((&HFF00& And QBColor(Color)) \ 256)
Console.WriteLine((&HFF0000 And QBColor(Color)) \ 65536)

您可以轻松地将其放入循环中以检查所有值。


2

QBColor被包含在.Net框架中,所以您可以在C#程序中直接使用QBColor。只需引用Microsoft.VisualBasic即可。


虽然本质上只是一个数组索引,但这似乎有点过头了。 - Deanna
@Deanna,重新实现已经存在于框架中的函数有点过头了吧?你只需要点击几下鼠标就可以引用另一个命名空间。 - MarkJ
如果我在写VB.net,也许会的。不过后来我可能会改变颜色(和可用数量)。 - Deanna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接