vb6 - vb 十六进制颜色代码

标签 vb6 colors hex

我想做这个:

    Const COLOR_GREEN = &H00FF00
    Me.Label1.BackColor = COLOR_GREEN

然而,有一个问题是 vb 自动决定将 &H00FF00 转换为 &HFF00,所以我得到了这个:
    Const COLOR_GREEN = &HFF00
    Me.Label1.BackColor = COLOR_GREEN

十进制值 COLOR_GREEN 现在是 -256 而不是 65280,所以背景是黑色而不是绿色!这很烦人,因为我可以使用 #00FF00 在表单设计模式下完美地设置颜色。

在表单设计模式下将颜色设置为#00FF00 在 vb 中的等价物是什么?

最佳答案

您是否尝试过文字 &H0000FF00& ?以下代码对我来说很好用:

Const COLOR_GREEN = &H0000FF00&
Me.Label1.BackColor = COLOR_GREEN

当然,VB 6 会自动将其折叠为这个,这仍然可以正常工作,因为这两个值在数值上完全相同:
Const COLOR_GREEN = &HFF00&
Me.Label1.BackColor = COLOR_GREEN

诀窍是该值需要声明为 Long ,而不是 Integer . 在数字文字后放置与号 ( & ) 即可完成此操作。

这也解释了为什么您看到的值为 -256 而不是您期望的 65280。值 65280 太长,无法放入 Integer ,当它溢出该数据类型时,VB 6 再次将其环绕,产生 -256。

还值得注意的是,VB 6 中的十六进制文字与您可能从 Web 和 HTML 编程中熟悉的那些不同。而不是您在那里找到的 RRGGBB 符号, VB 6 使用 BBGGRR 表示法,或 &H00BBGGRR& ,与原生Win32相同COLORREF低位字节是红色而不是蓝色的结构。

当然,请注意,对于您在此处显示的标准颜色值,最好使用 VB 文字,例如 vbGreen :
Me.Label1.BackColor = vbGreen

关于vb6 - vb 十六进制颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438277/

相关文章:

python - matplotlib 颜色线由 "value"

java - 改变甘特图中子任务颜色的代码

sql-server - 如何减去sql中的前一行?

android - 十六进制的颜色名称

vb6 - 我如何 "clone"VB6 表单

将十进制转换为十六进制

c++ - 生成特定的 32 位二进制序列

c++ - 如何根据十六进制值测试字节?

vb6 - 准确访问 VB6 限制

windows - WinDiff 的现代版本?