一、什么是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 colorBYTEbyGreen, // green component of colorBYTEbyBlue // 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);

Easyx——void setcolor(COLORREF color)中的 colorref类型相关推荐

  1. (1)定义接口A,里面包含值为3.14的常量PI和抽象方法double area()。 (2)定义接口B,里面包含抽象方法void setColor(String c)。

    代码 /*第一题:(1)定义接口A,里面包含值为3.14的常量PI和抽象方法double area().(2)定义接口B,里面包含抽象方法void setColor(String c).(3)定义接口 ...

  2. c语言中的void指针,C程序中void指针的概念

    到目前为止,我对void指针的轻描淡写如下. 当使用关键字void声明指针变量时,它将成为通用指针变量.任何数据类型(char,int,float等)的任何变量的地址都可以分配给void指针变量. m ...

  3. C#中static void Main(string[ ] args)中的作用及解释

    C#中static void Main(string[ ] args)中的作用及解释 static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程 ...

  4. c语言 万能函数指针,C/C++编程笔记:C语言精华解析之void *指针,指针中的万能指针...

    什么是万能指针? 万能指针其实就是void *类型的指针,而void *指针一般被称为通用指针或叫泛指针.它是C语言关于纯粹地址的一种约定.当某个指针是void型指针时,所指向的对象不属于任何类型. ...

  5. python rgb2gray,skimage.color中的rgb2gray是如何实现彩色图片灰度化

    最近在分析彩色图片灰度化的过程中使用到了一个函数skimage.color中的rgb2gray(),但是与自己所实现的灰度化公式在计算结果上出入较大,因此特意写这篇文章记录一下对比过程. 首先,看一下 ...

  6. 在java中关于枚举类型的特性_java枚举类型小结

    JDK5.0之前,我们一般选择使用 interface 来保存常量组,以此来弥补 JDK 中没有枚举类型的缺陷,从JDK5.0开始,Sun引进了一个全新的关键字 enum 来定义一个枚举类.同inte ...

  7. Java语言中的枚举类型

    枚举类型(Enumerated Type)在编程语言中常用,程序员必备食粮,下面随着我的思路来认识一下枚举类型. 是什么 枚举类型在java中是一种基本数据类型.它用于声明一组命名的常数,当一个变量有 ...

  8. 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门)

    by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门) (Why use stati ...

  9. Matlab中的结构类型struct

    结构(struct)数组 要在MALTAB中实现比较复杂的编程,就不能不用struct类型.而且在MATLAB中实现struct比C中更为方便. 4. 3.1 结构数组的创建 MATLAB提供了两种定 ...

最新文章

  1. 本地连接阿里云RDS
  2. eclipse常用快捷键汇总
  3. 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
  4. java学习笔记2022.1.17
  5. [转]web测试技术经典案例
  6. BPP 相关——02
  7. 区分那些是属于构架方面的C++功能
  8. MyEclipse 为xml添加本地的dtd文件
  9. soapui返回值类型都有哪些_滚珠丝杠的常用类型都有哪些?
  10. [转载·运维案例一]nginx日志切割及7天前的历史日志删除脚本
  11. 实用的才是最好的,教你如何以MATLAB的方式实现高等应用数学问题(一)
  12. 使用python模拟实现PID控制算法
  13. 【技术邻】FloEFD热仿真分析之结果处理
  14. B to B 与B to C网络支付结算方式区别
  15. 中国诗歌艺术7诗的魅惑:中国诗歌的几个基本元素之诗的语词及构句特点
  16. java 词频统计_Java实现的词频统计
  17. 数论 质因数分解 试除法
  18. ITIL Expert
  19. [PTA]实验3-6 计算个人所得税
  20. uniapp拨打电话

热门文章

  1. android6 miui9分屏,miui9分屏功能怎么用 miui9分屏怎么开启
  2. Codeforces Round #666 (Div. 1) ABCD(E)题解
  3. 登吃鸡显示无法连接到服务器,“吃鸡”玩家对比2次补偿礼包,光子变“小气”了!...
  4. 【DP|01背包】AHU-603 LOL系列之蒙多的春天
  5. jsp024ssm汽车配件管理系统
  6. 论文学习笔记(4):Intrinsic and Isotropic Resampling for 3D Point Clouds(内在控制的各向同性3D点云重采样)
  7. Android平台异常崩溃捕捉处理
  8. 海夕漫科技:直通车会影响自然流量吗
  9. 细说android广播机制(java)
  10. $random 函数用法