winabcd 发表于 2005-3-1 09:36:00

[讨论]VBA颜色问题

在VBA中,有下列几种颜色表示:1、真色彩RGB。2、十六进数&HFF00FF。3、颜色号0---255。
这几种表示之间是如何转换的?
下列颜色有关的属性之间如何互相引用或转换:
backcolor、forecolor、truecolor、colorindex、entitycolor、color。
我用下列语句就不能通过,
Dim col As New AcadAcCmColor
col.ColorIndex = lblNewColor.BackColor
其中lblNewIColor为一个标签控件。
请各位指教。

torch 发表于 2005-3-2 10:41:00

lblNewColor.BackColor
返回的是一个标签控件的索引数

winabcd 发表于 2005-3-3 08:58:00

lblNewColor.BackColor返回的是一个两字节长的整数,如&H008800FF,如何把它所表示的颜色转换成AcadAcCmColor对象所表示的颜色,我试了很多方法都不行,哪位知道请帮帮我,谢了。

雪山飞狐_lzh 发表于 2005-3-3 09:10:00

object.EntityColor

winabcd 发表于 2005-3-8 11:18:00

我用下列语句,可没有通过
Dim col As AcadAcCmColor
               Set col = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16")
               col.EntityColor = lblNewColor.BackColor
出现错误信息:
       

my_computer 发表于 2005-3-9 18:19:00

高版本功能真多,我的 2002 还没有AcadAcCmColor呢。

雪山飞狐_lzh 发表于 2005-3-9 21:36:00

感觉AcadAcCmColor类没有什么实用价值:)
这段时间太忙,没办法深入研究:)

tengte 发表于 2010-1-24 02:36:00

根据我的初步研究:
color为AutoCAD2004版本以前的对象属性,2004及以后已废除,但现仍能使用;
colorindex为从 0 到 256 的颜色索引值,作用与color类似,其为2004及以后版本中的color;
truecolor为对象,其包容RGB、colorindex、entitycolor等属性;
entitycolor的低24位为RGB或colorindex,25-40位的值与低24位有关。
页: [1]
查看完整版本: [讨论]VBA颜色问题