vc 中有没有颜色常量,比如用颜色的英文单词来表示一个具体的颜色?该怎么解决
vc 中有没有颜色常量,比如用颜色的英文单词来表示一个具体的颜色?
比如 GREEN 表示绿色
我有个程序需要从配置文本中读颜色的单词,然后根据不同的单词来设置程序中字体的不同颜色。。
------解决方案--------------------
这个估计要自己写代码来处理了,颜色配置用#RRGGBB格式,附上代码
COLORREF GetWebColor(CString strColor)
{
strColor.MakeLower();
if(strColor.Find(_T("0x")) != -1)
{
strColor.Replace(_T("0x"), _T(""));
COLORREF Color = _tcstoul(strColor, NULL, 16);
DWORD r = GetBValue(Color);
DWORD g = GetGValue(Color);
DWORD b = GetRValue(Color);
return RGB(r,g,b);
}
if(strColor.Find(_T("#")) != -1)
{
if( strColor.GetLength() !=7 &&
strColor.GetLength() != 9 )
return 0;
int r,g,b;
StrToIntEx(_T("0X")+strColor.Mid(1,2),STIF_SUPPORT_HEX,&r);
StrToIntEx(_T("0X")+strColor.Mid(3,2),STIF_SUPPORT_HEX,&g);
StrToIntEx(_T("0X")+strColor.Mid(5,2),STIF_SUPPORT_HEX,&b);
return RGB(r,g,b);
}
else
{
COLORREF Color = _tcstoul(strColor, NULL, 10);
DWORD r = GetBValue(Color);
DWORD g = GetGValue(Color);
DWORD b = GetRValue(Color);
return RGB(r,g,b);
}
}
比如 GREEN 表示绿色
我有个程序需要从配置文本中读颜色的单词,然后根据不同的单词来设置程序中字体的不同颜色。。
------解决方案--------------------
这个估计要自己写代码来处理了,颜色配置用#RRGGBB格式,附上代码
COLORREF GetWebColor(CString strColor)
{
strColor.MakeLower();
if(strColor.Find(_T("0x")) != -1)
{
strColor.Replace(_T("0x"), _T(""));
COLORREF Color = _tcstoul(strColor, NULL, 16);
DWORD r = GetBValue(Color);
DWORD g = GetGValue(Color);
DWORD b = GetRValue(Color);
return RGB(r,g,b);
}
if(strColor.Find(_T("#")) != -1)
{
if( strColor.GetLength() !=7 &&
strColor.GetLength() != 9 )
return 0;
int r,g,b;
StrToIntEx(_T("0X")+strColor.Mid(1,2),STIF_SUPPORT_HEX,&r);
StrToIntEx(_T("0X")+strColor.Mid(3,2),STIF_SUPPORT_HEX,&g);
StrToIntEx(_T("0X")+strColor.Mid(5,2),STIF_SUPPORT_HEX,&b);
return RGB(r,g,b);
}
else
{
COLORREF Color = _tcstoul(strColor, NULL, 10);
DWORD r = GetBValue(Color);
DWORD g = GetGValue(Color);
DWORD b = GetRValue(Color);
return RGB(r,g,b);
}
}