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了

 

 

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

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

(0)
上一篇 2025年6月27日 下午8:43
下一篇 2025年6月27日 下午9:22


相关推荐

  • Windows下搭建Spark+Hadoop开发环境

    Windows下搭建Spark+Hadoop开发环境

    2022年3月2日
    62
  • ctf get post 传参 HackBar

    ctf get post 传参 HackBarget和post是http协议的两种基本请求方式GET-从指定的资源请求数据。POST-向指定的资源提交要被处理的数据https://www.w3school.com.cn/tags/html_ref_httpmethods.asp知乎上这篇更详细,关于get和post的区别https://www.zhihu.com/question/28586791web题中会遇到,比如…

    2022年5月20日
    32
  • pycharm设置代理_mac pycharm怎么设置环境

    pycharm设置代理_mac pycharm怎么设置环境一、Shadowsocket用默认端口即可不需要改二、mac网络三、Pycharm配置代理检测成功四、然而执行代码还是没走代理最后方式直接request加代理#!/usr/bin/evnpython#-*-coding:utf-8-*-importrequestsproxy={“http”…

    2022年8月26日
    12
  • STM32+ESP8266+MQTT协议连接阿里云物联网平台

    STM32+ESP8266+MQTT协议连接阿里云物联网平台一 环境介绍单片机采用 STM32F103C8T 上网方式 采用 ESP8266 也可以使用其他设备代替 只要支持 TCP 协议即可 比如 GSM 模块 有线网卡等 开发软件 keil5 二 实现功能通过阿里云物联网服务器实现设备数据远程上传 下发 实现数据交互 在当前使用的开发板上有 4 盏 LED 灯 一个蜂鸣器 4 个按键 三 阿里云物联网服务器创建步骤说明 如果没有账号的话 先点击网页右上角 注册一个账号 并完成实名认证再继续下一步 产品名称根据自己情况填

    2026年3月17日
    2
  • 为什么L1正则化导致稀疏解「建议收藏」

    一、从数据先验的角度首先你要知道L1范式和L2范式是怎么来的,然后是为什么要把L1或者L2正则项加到代价函数中去.L1,L2范式来自于对数据的先验知识.如果你认为,你现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验P(x),一般由于推导和计算方便会加入对数似然,也就是log(P(x)),然后再去优化,这样最终的结果是,由于你的模型参数考虑了数据先验,模型效果当然就更好.哦对了,如果你…

    2022年4月12日
    71
  • 玩转Android—UI篇—ListView之ArrayAdapter(列表)—2

    玩转Android—UI篇—ListView之ArrayAdapter(列表)—2

    2021年8月21日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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