Easyx——void setcolor(COLORREF color)中的 colorref类型

一、什么是COLORREF?
  COLORREF类型用来描绘一个RGB颜色。其定义如下:
  typedef DWORD COLORREF;
  typedef DWORD *LPCOLORREF;
  COLORREF类型变量值描绘一个颜色时对应于下面16进制的格式:
  0x00bbggrr
  可以用这样一个结构体来描述。

RGB_value struct
  {
  byte unused ;
  byte blue ;
  byte green ;
  byte red;
  };

其中第一字节为 0 而且始终为 0,其它三个字节分别表示蓝色、绿色和红色,刚好和 RGB 的次序相反。这个结构体用起来挺别扭。

二、我该怎样用它?

对于COLORREF,我们通常使用宏RGB对其进行赋值。

宏的定义如下:

COLORREF RGB
  (
  BYTEbyRed, // red component of color
  BYTEbyGreen, // green component of color
  BYTEbyBlue // blue component of color
  );

COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。

方法一:你可以使用 RGB 函数来 初始化 COLORREF。

例如:

COLORREF color=RGB(0,255,0);
  RGB函数接收三个 0-255 数值,一个代表红色,一个代表绿色,一个代表蓝色。在
  上面的例子中,红色和蓝色值都为 0,所以在该颜色中没有红色和蓝色。绿色为最大值
  255。所以该颜色为绿色。0,0,0 为黑色,255,255,255 为白色。
方法二:

CColorDialog colorDialog;

COLORREF color;
  if( colorDialog.DoModal() == IDOK )
  {
  color = colorDialog.GetColor();
  }
  这段代码使用了 MFC 中的颜色对话框,它需要文件。
  如何从COLORREF中获取RGB分量值:
  COLORREF colorrrefRGB =RGB(120,250,110);
  BYTE r = GetRValue(colorrrefRGB);
  BYTE g = GetGValue(colorrrefRGB);
  BYTE b = GetBValue(colorrrefRGB);

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值