我们知道,自从.Net平台出现之后,微软不仅让其软件开发工具平台及框架支持Unicode,就是整个windows系统,其内核也彻底支持Unicode,可以预见,在不久的将来,Unicode将成为各种文字处理软件的统一标准,而且,以后的应用程序开发必然会向Unicode看齐。
今天,我们简单介绍一下vs2005中,数值类型如何格式化为CString对象。
void CScribleView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO:
if (GetCapture() != this)
{
return;
}
CClientDC* pdc = (CClientDC*)GetDC();
1:CString str = _T("The mouse's x:%d The mouse's y:%d");;
:2:CString tempStr;
:3:tempStr.Format(str,point.x,point.y);
4:pdc->TextOut(0,0,tempStr);
pdc->MoveTo(prevPoint);
pdc->LineTo(point);
prevPoint = point;
ReleaseDC(pdc);
CScrollView::OnMouseMove(nFlags, point);
}
第一行:我们定义一个CString类型的对象,调用其赋值构造函数(=操作符重载);注意:我们在字符串前加上_T,表明这个字符串将以Unicode格式分配空间存储。要知道,CString对象包含的是Unicode字符。那么,为什么不让其默认为Unicode字符类型呢?那是因为,以前的程序都是单字符的,基于ASCII码,所以为了保持兼容性,才没有一刀斩乱麻。
第一行:同样定义一个CString对象,用作格式化结果存放的地方;
第三行:进行格式化转换,Format的第一个参数是要转换的格式,后面的参数是可选的,就如同printf一样。
第四行:为了显示需求,我们输出结果到屏幕上。
每一天,你都能够发现自己的不足,遇到新的问题,何不把它记下来,与大家一起分享和交流呢。知其不足,才可补焉。