词条 | COLORREF |
释义 | 什么是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 color BYTEbyGreen, // green component of color BYTEbyBlue // 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); |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。