COLORREF,COLOR,RGB,CString的转化总结分析

COLORREF,COLOR,RGB,CString的转化总结分析

实际的软件开发过程中,常需要用到非。净得很平台的代码。这时候就可能碰到ColorRef(也就是以内部的类型代表的颜色值或是以S7-1200可编程控制器值表示的颜色页:1。这跟。净得很平台下的颜色的相互转换女士们并没有直接实现

010-5900 RGB(r、g、b)是一个宏实际上它做得事是(COLORREF)(((位元组)(r)|(字)((位元组)(g))8))|(((DWORD)(位元组)(b))16))

rgb(r、g、b)=1一个整型值=r g * 256 b*255*256

COLORREF是一个32位整型数值,它代表了一种颜色。你可以使用RGB(三原色)函数来初始化COLORREF它的定义typedef DWORD COLORREF:

010-5900 color ref cf=RGB(、);

一、COLORREF与RGB的相互转化

美元复制代码代码如下:ccolordialog colordialogcolorref颜色

如果(颜色对话框)。domodal()==idok){ color=color dialog。get color();}这段代码使用了MFC(消歧义)中的颜色对话框

COLORREF变量有两种赋值方法第一种

美元可以使用宏getrvaluegetgvaluegetbvalue

010-5900 #定义值(rgb)(位元组)(RGB))#定义GetGValue(rgb)(位元组)(((字)(rgb)) 8)

#定义GetBValue(rgb)((位元组)((rgb)16))

第二种

美元实际的软件开发过程中,常需要用到非。净得很平台的代码。这时候就可能碰到ColorRef(也就是以内部的类型代表的颜色值或是以S7-1200可编程控制器值表示的颜色页:1。这跟。净得很平台下的颜色的相互转换女士们并没有直接实现。那么就需要我们自己处理了。这里给出两个函数。复制代码代码如下:uint GetCustomColor(颜色){ int ncolor=color .to argb();int blue=ncolor 255 int green=ncolor 8 255 int red=ncolor 16 255返回转换ToUInt32(蓝色16 |绿色8 |红色);}

隐藏颜色颜色(中间颜色)

{ int blue=颜色255;int绿色=颜色8 255:int red=颜色16 255;返回颜色FromArgb(蓝色、绿色、红色);}注:COLORREF中颜色的排列是BGR,而通过彩色的ToArgb()得到的数值中颜色排列是aarrggbb足球俱乐部

如何从 COLORREF中取出RGB分量值?

美元复制代码代码如下:ccolordialog dlg如果(dlg).domodal()==idok){//m _ fill color=DLG .get color();COLORREF ctmpColor=dlg .get color();tmpcolortmpColor。setfromcolorref(ctmp color);argb argb=color:makar GB(m _ nfiltran,tmpColor).drin()、tmpColor .GetG()、tmpColor .getb();//图形(pDC-m _ hDC)://hatch brush hbrush(hatstyledashihorizontal,Color(100,255,0,0),Color(argb));tmp color=arg BM _ fill color=tmp color .toolor orref();//m_FillColor=RGB(颜色(argb));

}这是用美国石油学会函数写的Colorref和颜色(颜色)直间的转换。

我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊

COLORREF和字符之间的转换

他们的定义如下

美元复制代码代码如下:int ired=value(pmarkinfo-lf color);int I green=getgvalue(pmarkinfo-lf color);int iblu=getbv value(pmarkinfo-lf color);cstring szcolorszColor(色)。页:1:{ fn华文楷体3ch 804000 } m _背色。m _ frame _ color= # 0290 D8S7-1200可编程控制器:sscannf(m _ backcolor。m _ frame _ color," #%2X%2X%2X,r,g,b);COLORREF rgb=RGB(r、g、b);画笔(意大利语)。create olidb ush(RGB)/////////////////////////////////////////////////////color ref转换为字符串

bool CDATA manager:begbtext(STD:string strrgbttext,color ref color){//colorref col=RGB(255,12,4);位元组red=getrvalue(颜色):///得到红颜色字节绿色=GetGValue(颜色):///得到绿颜色字节蓝色=GetBValue颜色:///得到兰颜色char chr[4];itoa(红色,chR,10);

坦克车[4];伊托阿(绿色、chG、10);

char CHB[4];伊托阿(蓝色,chB,10);

std:string strR,ctrl,strbstrr=chrstrg=chgstrb=chb

strRGBText=strR、ctrl、strb

返回真实}

//字符串转换为COLORREF,如( 32 、 34 、 21 )

bool CDATA manager:get color GB(cstring strcolortext,COLORREF color){ char chR[4]=、chG[4]=、CHB[4]=;sscannf(strcolortext,chR,chG,CHB);颜色=RGB(atoi(chR)、atoi(chG)、atoi(CHB));返回真实的我的天啊,我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊

COLORREF,COLOR,RGB,CString的转化总结分析