实际的软件开发过程中,常需要用到非。净得很平台的代码。这时候就可能碰到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));返回真实的我的天啊,我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。