C语言图形处理中,想知道COLOREF函数的用法及简单解释,还有WORD型是什么型?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 22:53:17
C语言图形处理中,想知道COLOREF函数的用法及简单解释,还有WORD型是什么型?

C语言图形处理中,想知道COLOREF函数的用法及简单解释,还有WORD型是什么型?
C语言图形处理中,想知道COLOREF函数的用法及简单解释,还有WORD型是什么型?

C语言图形处理中,想知道COLOREF函数的用法及简单解释,还有WORD型是什么型?
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
(
BYTE byRed ,// red component of color
BYTE byGreen ,// green component of color
BYTE byBlue // 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 为白色.
另一种初始化 COLORREF 的方法如下所示:
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);