COLORREF 和字符之间的转换

1、将16进制的字符串转换成COLORREF类型的变量

例如:char cColor[6] = {'a','b','3','5','f','f'};我只想到了这种sb方法,有好方法的贴给我,下面给出我的代码:

 

 char ch1[2] ;

char cOsdColor[6] = {'a','b','3','5','f','f'};

 ch1[0] = m_decInfo.cOsdColor[0];
 ch1[1] = m_decInfo.cOsdColor[1];
 long   longvar1,longvar2,longvar3; 
    sscanf(ch1, "%x ",&longvar1);

 ch1[0] = m_decInfo.cOsdColor[2];
 ch1[1] = m_decInfo.cOsdColor[3];
 sscanf(ch1, "%x ",&longvar2);

 ch1[0] = m_decInfo.cOsdColor[4];
 ch1[1] = m_decInfo.cOsdColor[5];
 sscanf(ch1, "%x ",&longvar3);

 COLORREF m_RGB = RGB(longvar1,longvar2,longvar3);

 

2.将COLORREF转化成16进制的字符串

	COLORREF m_RGB = 3452212;
         BYTE ch[3];
	ch[0] = GetRValue(m_RGB);
	ch[1] = GetGValue(m_RGB);
	ch[2] = GetBValue(m_RGB);
    char p1[9];

	char p2[6];
	char p3[3];
	memset(p1,'\0',9);
	memset(p2,'\0',6);
	memset(p3,'\0',3);

    sprintf(p1,"%x",ch[0]);
	sprintf(p2,"%x",ch[1]);
	sprintf(p3,"%x",ch[2]);

	if ( p1[0]== '0')
	{
		p1[1]='0';

	}
	if ( p2[0]== '0')
	{
		p2[1]='0';
		
	}
	if ( p3[0]== '0')
	{
		p3[1]='0';
		
	}

	strcat(p1,strcat(p2,p3));

	for (int i=0;i!=9;i++)
	{
		p1[i] = toupper(p1[i]);
	}
         得到的p1即为16进制的字符串。


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值