| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1618 人关注过本帖
标题:请教:下面一段代码是开打winds的颜色对话框,取RGB值
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:2 
请教:下面一段代码是开打winds的颜色对话框,取RGB值
下面一段代码是开打winds的颜色对话框,取RGB值  

nColor=GETCOLOR()  &&获得颜色编号
**注:RGB(R,G,B)=R+G*256+B*256*256
IF nColor#-1
   nR=BITAND(nColor,255)
   nG=BITAND(nColor,255*256)/256                           

  nB=BITAND(nColor,255*256*256)/(256*256)
   This.BackColor=RGB(nR,nG,nB)
   WITH Thisform.MSChart1.Backdrop
       .Fill.Style= 1  && VtFillStyleBrush
       .Fill.Brush.FillColor.Set(nR,nG,nB)
   ENDWITH
ENDIF   
 1、 为什么255*256?难道地G开始也是255吗?为什么还再除以256,

 2、BITAND()的作用?

 3.getcolor()返回的颜色编号,它是几进制?RGB()颜色值它是几进制?二者有何关系?
搜索更多相关主题的帖子: 对话框 
2010-12-31 09:02
xmlz
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:294
专家分:1392
注 册:2010-8-29
收藏
得分:20 
1、RGB每一位的颜色值取值范围都是0-255;
2、光的三原色中:
红色R的RGB值为RBG(255,0,0)=255
绿色G的RGB值为RBG(0,255,0)=65280=255*256
蓝色B的RGB值为RBG(0,0,255)=16711680=255*256*256
3、bitand()的作用是按位与,二进制数中同为1则该位为1,有一个为0则为0,如二进制数110与100按位与的结果为100,仅第一位同为1,故结果该位为1,后两位中都不是同为1,故为0.
4、getcolor()和rgb()返回的颜色值都是10进制的。getcolor()让你只管地选择颜色返回颜色值,RGB()可以通过设置三原色各颜色值的分量来返回颜色值。

其它问题参照以上内容。
2010-12-31 09:22
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
1\这里用BITAND()的作用是什么?
2\为什么用了BITAND()后还要除以256或除以256*256?
2010-12-31 19:58
快速回复:请教:下面一段代码是开打winds的颜色对话框,取RGB值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019052 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved