关于COLORREF的定义及用法
轉(zhuǎn)載自http://blog.sina.com.cn/s/blog_65cab32d010136cl.html
一、什么是COLORREF?
COLORREF類型用來描繪一個RGB顏色。其定義如下:
typedef DWORD COLORREF; typedef DWORD *LPCOLORREF;
COLORREF類型變量值描繪一個顏色時(shí)對應(yīng)于下面16進(jìn)制的格式:
0x00bbggrr
可以用這樣一個結(jié)構(gòu)體來描述。
RGB_value struct
{
byte unused ;
byte blue ;
byte green ;
byte red;
};
其中第一字節(jié)為 0 而且始終為 0,其它三個字節(jié)分別表示藍(lán)色、綠色和紅色,剛好和 RGB 的次序相反。這個結(jié)構(gòu)體用起來挺別扭。
二、如何使用
對于COLORREF,我們通常使用宏RGB對其進(jìn)行賦值。
宏的定義如下:
COLORREF RGB
(
BYTEbyRed, // red component of color
BYTEbyGreen, // green component of color
BYTEbyBlue // blue component of color
);
COLORREF 是一個 32-bit 整型數(shù)值,它代表了一種顏色。
方法一:你可以使用 RGB 函數(shù)來 初始化 COLORREF。
例如:
COLORREF color=RGB(0,255,0);
RGB函數(shù)接收三個 0-255 數(shù)值,一個代表紅色,一個代表綠色,一個代表藍(lán)色。在上面的例子中,紅色和藍(lán)色值都為 0,所以在該顏色中沒有紅色和藍(lán)色。綠色為最大值255。所以該顏色為綠色。0,0,0 為黑色,255,255,255 為白色
方法二:
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);
總結(jié)
以上是生活随笔為你收集整理的关于COLORREF的定义及用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: walle代码发布系统配置
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?