複製鏈接
請複製以下鏈接發送給好友

COLORREF

鎖定
COLORREF是color和reference的縮寫,表示顏色值,實際上是unsigned long類型。可以配合RGB()宏來設置。
中文名
COLORREF
外文名
COLORREF
領    域
計算機
用    途
編程

目錄

COLORREF簡介

什麼是COLORREF? 我該怎樣用它?
COLORREF類型用來描繪一個RGB顏色。其定義如下:
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;
COLORREF類型變量值描繪一個顏色時對應於下面16進制的格式:
0x00bbggrr
可以用這樣一個結構體來描述。
RGB_value struct
{
byte red;
byte green;
byte blue;
byte unused;
};
其中第一字節為 0 而且始終為 0,其它三個字節分別表示藍色、綠色和紅色,剛好和 RGB 的次序相反。這個結構體用起來挺彆扭。對於COLORREF,我們通常使用宏RGB對其進行賦值

COLORREF宏的定義

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);