标题: 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