RGB的参数中设置成变量应该怎么做

wei07301852 2008-06-17 10:43:11
如果我想用变量来取代RGB中的参数如RGB(x, y ,z)请问里面的变量应该设成什么类型,我试过int 和double都不行。
...全文
565 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2008-06-18
  • 打赏
  • 举报
回复
char,unsigned char,BYTE
wei07301852 2008-06-18
  • 打赏
  • 举报
回复
就是因为创建时已经指定了颜色,但是我想在一个if语句中实现颜色转换。有什么办法,请各位指教,今年刚上大一,很多东西不懂。。。
leelittlelong 2008-06-18
  • 打赏
  • 举报
回复
如果想一直用一个brush
那就用CreateSolidBrush来换它的颜色

传入的参数 也是 COLORREF
leelittlelong 2008-06-18
  • 打赏
  • 举报
回复
CBrush(
COLORREF crColor
);


你创建的时候 不就指定了颜色了么。。

你这个问题 跟上面的问题 好像跳跃很大啊。。。
wei07301852 2008-06-18
  • 打赏
  • 举报
回复
还是不行啊,如果是用CBrush brBackGround构造一个刷子后,应该用什么函数来改变刷子的颜色?
引力场变动源 2008-06-18
  • 打赏
  • 举报
回复
COLORREF color;
unsigned char R,G,B;
R=(byte) (color& 255);
G=(byte) ( (color>>8) & 255 );
B=(byte) ( (color>>16) & 255);
引力场变动源 2008-06-18
  • 打赏
  • 举报
回复
COLORREF每个色彩分量(R、G、B)都是一个byte,需要从COLORREF中提取颜色分量的话,可以这样做:

m_B=(byte) ( (cr>>16) & 255);
m_G=(byte) ( (cr>>8) & 255 );
m_R=(byte) (cr & 255);

如果经常用到色彩操作的话,建议自己写一个类封装一下。
leelittlelong 2008-06-18
  • 打赏
  • 举报
回复
就用COLORREF吧
当然他其实是DWORD

真正的定义如下
typedef DWORD COLORREF;
maomaoxiong 2008-06-18
  • 打赏
  • 举报
回复
呵呵,换个思路,在if else 语句中就设置好刷子就好了
wei07301852 2008-06-18
  • 打赏
  • 举报
回复
我运行下面代码时r的值会变成345973836然后就出错了,请各位高手指点
COLORREF r,g ,b;
if( this->Color == 1)
{r = 255; g = 0 ;b = 0;}
else if ( this->Color == 2)
{r = 0 ; g = 255 ;b = 0;}
else if ( this->Color == 3)
{r = 0 ; g = 0 ; b = 255;}
CBrush brBackGround(RGB( r , g, b));
CBrush *pBrush = &brBackGround;
pDC->FillRect(&rc , pBrush);
janyming 2008-06-18
  • 打赏
  • 举报
回复
COLORREF就OK!
coordinate 2008-06-17
  • 打赏
  • 举报
回复
COLORREF,其实就是无符号长整数
kingstarer 2008-06-17
  • 打赏
  • 举报
回复
typedef unsigned long DWORD;
kingstarer 2008-06-17
  • 打赏
  • 举报
回复
rgb是一个函数,返回类型是COLORREF
-------------------------
RGB
The RGB macro selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device.

COLORREF RGB(
BYTE byRed, // red component of color
BYTE byGreen, // green component of color
BYTE byBlue // blue component of color
);

-------------------------
COLORREF
The COLORREF value is used to specify an RGB color.

typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧