CFont font;
LOGFONT lf;
memset(&lf,0,sizeof(lf));
lf.lfHeight = 30;
lf.lfWidth = 20;
_tcscpy(lf.lfFaceName,_T("宋体"));       
VERIFY(font.CreateFontIndirect(&lf));  char buffer[10];
_itoa_s(game.count,buffer,10,10);
m_mydlg.m_staticcount.SetFont(&font);
m_mydlg.m_staticcount.SetWindowText(reinterpret_cast<LPCTSTR>(buffer));
m_leval = game.count / 1000;
if(m_leval > 9)
m_leval = 0;
_itoa_s(m_leval,buffer,10,10);
m_mydlg.m_staticleval.SetFont(&font);
m_mydlg.m_staticleval.SetWindowText(reinterpret_cast<LPCTSTR>(buffer));我在VS2008下用了这段代码,但是显示出来的字是乱码,该怎么修改啊?

解决方案 »

  1.   

    字符集设为:多字节。
    要不就改char->WCHAR
      

  2.   

    char -> TCHAR
    _itoa_s -> _itot_s
      

  3.   

    SetWindowText(reinterpret_cast<LPCTSTR>(buffer))
    这种用法本身就有问题。
    强制转换是有条件的,当你确定它就是那种类型的时候才可以强转,否则,你转过去的也是错误的,轻则显示不正确,重则程序崩溃,甚至把数据库中的数据弄乱,到那时候,说不定可以整夸一个企业!
      

  4.   

    好像有改language属性的,从Eng改成CNA。