COLORREF结构「建议收藏」

COLORREF结构「建议收藏」1 定义typedef DWORD  COLORREF;即为一个32为长整数2初始化COLORREFcol=RGB(100,200,10);其中用到了RGB,看看他是什么:#defineRGB(r,g,b)         ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))原来也是一个COLORREF,不过是把参数转换

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1  定义

typedef  DWORD   COLORREF;

即为一个32为长整数

2 初始化

COLORREF col = RGB(100,200,10);

其中用到了RGB,看看他是什么:

#define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))

原来也是一个COLORREF ,不过是把参数转换了下,至于为什么要转换,可以看看我的另外一篇D3D颜色的文章。

3 取值

GetXValue(COLORREF col ),其中的X可以是R,G,B等,分别表示取得相应的颜色值,例如:

 COLORREF col = RGB(100,200,10);
 BYTE r = GetRValue(col);

表示取得R值

看下他的定义:

#define GetRValue(rgb)      (LOBYTE(rgb))
#define GetGValue(rgb)      (LOBYTE(((WORD)(rgb)) >> 8))
#define GetBValue(rgb)      (LOBYTE((rgb)>>16))

其中用到了LOBYTE,这个我就不讲了,大家可以去看下他的定义

4 使用

主要是用于GetPixel的返回值,如

 COLORREF  col;
col = GetPixel(hMyDC,(i+1)%bmp.bmWidth,(i+1)/bmp.bmWidth);

5 注意事项:

初始化时颜色值必须是0~255的整数,否则会出现溢出,看下原因RGB的定义就知道了,转换为BYTE了

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223692.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java中标识符的命名规则

    Java中标识符的命名规则培养好的编程习惯是十分重要的。本文带你简单认识一下Java中标识符的命名规则和规范。

  • UDP发送大型文件_不丢包[通俗易懂]

    UDP发送大型文件_不丢包[通俗易懂]先上图1:如果对文件要求不高的话,可以使用UDP,UDP在实际测试中,丢包还是听验证的,但是效率高2:如果文件必须完整,还是使用TCP。Socket进行文件传输,比较稳妥近期的项目中要是用软件升级,系统文件有600M。一般的程序员会说,下载吗,直接下载安装就好了,我也是这样想的,素不知线下的网络的环境有多差,当时一个业务员和我说,要是能实现手机发送文件给设备就好了,毕竟大家都是用手机…

  • 桌面上图标都不见了怎么办听语音

    桌面上图标都不见了怎么办听语音

  • 搭建pycharm环境_pycharm怎么配置anaconda环境

    搭建pycharm环境_pycharm怎么配置anaconda环境首先要创建一个项目,创建项目的同时,pycharm默认会顺带创建一个虚拟环境(如果你没修改默认配置的话)。点击终端,如果前面有个(venv)就是使用的虚拟环境了。接下来我们安装pyside6,在终端中输入并执行以下命令:pipinstallpyside6安装完成后配置拓展工具,需要用到的2个工具是pyside6-uic和pyside6-designerpyside6-designer是调用pyside6模块内附带的qtdesigner在Linux中其位

  • S3C2440C语言点灯

    S3C2440C语言点灯第一代程序员使用机器码第二代程序员使用汇编第三代程序员使用C语言C语言相较于汇编和机器码是一个更高级的语言,我们使用的技术也应该与时俱进之前控制寄存器是配置GPFCON和GPFDAT寄存器,通过地址访问,所以可以用C语言来进行对地址的访问。GPFCON——0x5600,0050GPFDAT——0x5600,0054目录S3C2440芯片手册导读用指针表示S3C2440芯片手册导读对于GPFCON,只用到了16位对于GPFDAT,只用到了8位我们仍然可以以32位,就是4字节的

  • mysql error 1227 42000_mysql导入报错

    mysql error 1227 42000_mysql导入报错今天在学习mysql的时候,一顿蜜汁操作,再次使用mysql的时候发现,不管用啥子命令,都出现了一个报错mysql&amp;gt;selectuser,passwordfrommysql.user;ERROR1142(42000):SELECTcommanddeniedtouser‘root’@‘localhost’fortable‘user’看了一下报错信息,权限不够…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号