❶ WINDOWS编程中RGB宏定义里的RGB含义
因为Windows里定义R、G、B三个颜色值的范围都是0~255,所以先用BYTE卡一下范围(防止你输入一个300然后出现奇怪现象)
然后看清楚运算顺序
r直接转换为BYTE
g是先转换为BYTE,然后移动8位(目的是把位置移动到比r高的位置),然后再转换为WORD(其实这步意义不大。当然,可以转换为WORD是因为WORD的范围依然在BYTE移动8位后的范围)
b则是先转换为BYTE,然后移动16位(移动到比g高的位置),然后转换为DWORD(同样,意义不是很大。不用WORD是因为BYTE移动16后范围比WORD大了)
最后三者再合并到一起