标题:
OLE_COLOR 和 COLORREF 类型之间转换
[打印本页]
作者:
51hei社区
时间:
2016-1-16 03:12
标题:
OLE_COLOR 和 COLORREF 类型之间转换
原文地址:
http://support.microsoft.com/kb/131101/zh-cn
一个 OLE_COLOR 和一个 COLORREF 之间的主要差异是如果一个 OLE_COLOR 中有其高序位设置低序位字节被视为系统颜色索引。当检测到这种情况时,OleTranslateColor(),COleControl::TranslateColor() 调用该函数将一个 COLORREF 转换为系统颜色索引。下面的代码阐释一个 OLE_COLOR 和一个 COLORREF 之间的转换:
void CMyOleControl::ConversionTest() { OLE_COLOR ocBack = GetBackColor(); // Convert OLE_COLOR to COLORREF COLORREF clrBack = TranslateColor(ocBack); // Convert COLORREF to OLE_COLOR OLE_COLOR ocConverted = (OLE_COLOR)clrBack; }
我个人的处理方法: 既然转换是无法避免的,不如直接转DWORD了, 因为
typedef DWORD COLORREF;
自己使用,简单化处理
直接定义两个宏完事:
#define COLORREF2DWORD(color) (DWORD)color
#define DWORD2COLORREF(dword) (COLORREF)dword
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1