CString TCHAR BSTR BYTE WORD DWORD COLORREF VARIANT等数据类型相互转换

1.基本数据类型转CString类型

int a=100;

float b=1.234;

CString str;

str.Format(_T("a=%d,b=%f"),a,b);

2.TCHAR*类型转换成CString类型

TCHAR sz[] = _T("Hello World!");

CSting str = sz;//直接赋值也可以用Format函数

//CString str;

//str.Format(_T("%s"),sz);

3..TCHAR*类型转换成BSTR类型

TCHAR sz[] = _T("Hello World!");

//调用ConvertStringToBSTR函数

BSTR bstr1=_com_util::ConvertStringToBSTR(sz);

//或者使用_bstr_t

BSTR bstr2 = _bstr_t(sz);

CString str;

str.Format(_T("bstr1=%s,bstr2=%s"),(CSting)bstr1,(CSting)bstr2);

4.BSTR类型转换成CString类型

BSTR bstr=::SysAllocString(L"Hello World!");

//强制转换

CString str = (CSting)bstr;

::SysFreeString(bstr);

5.将DWORD转换成WORD类型

DWORD dwValue = 0xFFAA5500;

WORD wLow=LOWORD(dwValue);

WORD wHigh=HIWORD(dwValue);

CString str;

str.Format(_T("dwValue=0x%08X,wLow=0x%04X,wHigh=0x%04X"),dwValue,wLow,wHigh);

6.将WORD转换成DWORD类型

WORD wLow=0x5500;

WORD wHigh=0xFFAA;

DWORD dwValue = MAKELONG(wLow,wHigh);

CString str;

str.Format(_T("dwValue=0x%08X,wLow=0x%04X,wHigh=0x%04X"),dwValue,wLow,wHigh);

7.将COLORREF转换成RGB分量

COLORREF cr = RGB(255,128,0);

BYTE RED=GetRValue(cl);

BYTE GREEN=GetGValue(cl);

BYTE BLUE=GetBValue(cl);

8.给VARIANT类型赋值

VARIANT var;
 CString strText = _T("");

 //初始化VARIANT类型变量
 VariantInit(&var);
 
 //给VARIANT类型变量赋值
 var.vt = VT_I4;
 var.lVal = (long)100;
 strText.Format(_T("var = %d"), var.lVal);
 pDC->TextOut(100, 50, strText);

 //清除VARIANT类型变量
 VariantClear(&var);

 //给VARIANT类型变量赋值
 var.vt = VT_R4;
 var.fltVal = 1.23f;
 strText.Format(_T("var = %f"), var.fltVal);
 pDC->TextOut(100, 100, strText);

 //改变VARIANT类型变量数据类型
 VariantChangeType(&var, &var, 0, VT_R8);
 strText.Format(_T("var = %f"), var.dblVal);
 pDC->TextOut(100, 150, strText);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值