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);