当前位置:C++技术网 > 资讯 > COLOR和COLORREF转换实例

COLOR和COLORREF转换实例

更新时间:2015-10-25 23:37:01浏览次数:1+次

我们来讲讲颜色对话框,GDI+编程中的COLORREF类型转换成MFC中Color类型,也许你写程序时会遇到(好吧,我就遇到了)因此,我留下我的解决方法,已备你的不时之需。
在《COLOR和COLORREF之间的理解与相互转换》一文中,我已解释过了相关的概念。现在就是具体实现了。

在我升级软件的时候,这个转换问题还真是费神,额..是这样的。我创建了颜色对话框后,需要将我从对话框中选择的颜色弄到GDI+的画刷Brush类中,可遇到了类型转换,这时候,我第一次试的就是强制类型转换,但是没用,那好吧,只能另想办法。下面我们看代码:


void CPictureProcessDlg::OnClickedColor()
{
	if (IDOK == colordlg.DoModal())    // 显示颜色对话框   
	{
		// 如果点击了颜色对话框的“确定”按钮,则执行以下操作   

		// 获取颜色对话框中选择的颜色   
		color = colordlg.GetColor();
		r = GetRValue(color);
		g = GetGValue(color);
		b = GetBValue(color);
	}
}
我们接下来创建GDI画刷,你得注意了,变量r,g,b得是全局变量,而且是BYTE类型,为什么是这个类型?你可以看《COLOR和COLORREF之间的理解与相互转换



Brush *brush = new SolidBrush(Color(r, g, b));//定义GDI+画刷对
在这里说一句,我写的文章90%都是自己的心得体会,以及自己写程序做软件时实战典例。实用性还是不错的,不能错过哦!