这是一个老问题了,在论坛上没有找到答案忘各位大虾帮忙。源代码如下:LOGFONT logFont;
ZeroMemory((void*)&logFont,sizeof(logFont));
CString str="宋体";
_tcscpy(logFont.lfFaceName,str);
logFont.lfHeight = -12;
logFont.lfWeight = 400;
logFont.lfCharSet = (BYTE)(65001&0x00FF);  //utf8代码页
logFont.lfOutPrecision = 3;
logFont.lfClipPrecision = 2; 
logFont.lfQuality = 1;
logFont.lfPitchAndFamily = 2;
BOOL bResult = m_font.CreateFontIndirect(&logFont);CWnd* pEdit = GetDlgItem(IDC_EDIT1);
if (pEdit)
{
                pEdit->SetFont(&m_font);
pEdit->SetWindowText("\xE4\xB8\xAD");   //对应“中”这个汉字
}程序运行的结果不是预期的那样,并没有显示“中”这个汉字。
我已经设置了字体和代码页,可是也不行。
请问这个问题应该如何解决

解决方案 »

  1.   

    BOOL SetWindowText( 
      HWND hWnd, 
      LPCTSTR lpString 
    ); 
    所以, 不支持 utf8, 要把 utf8 转成 LPCTSTR
      

  2.   

    windows肯定支持uft8,否则基于utf8的文本编辑器,如何开发出来的。
      

  3.   

    windows 支持uft8 这没问题, 我说的是不能直接把 uft8 字符串传给 SetWindowText 作参数. 至于说基于utf8的文本编辑器, 那是另一码事情了, 并不是直接拿SetWindowText来做的, 这太小儿科了.
      

  4.   

    到底应该如何才能实现我的需求,难道没人会?还是mfc根本就不能实现。
    太悲哀了。