我正在用vs2012学习MFC,编写了一个字处理程序 类似记事本,切换字体什么的都可以,但就是无法输入汉字,
看孙鑫视频用VC6.0就能输出汉字!是vs2012原因? 还是自己少了什么步骤?由于是初学,好多不懂,请各位前辈指点。。

解决方案 »

  1.   

    附上一段代码:
           对WM_CHAR消息相应:
            TEXTMETRIC tr;
    CFont ft;
    ft.CreatePointFont(800,_T("华文行楷"));
    CClientDC cdc(this);
    CFont *p=cdc.SelectObject(&ft);
    cdc.GetTextMetrics(&tr);
    if (0X0d==nChar)                 //回车处理
    {
    str.Empty();
    _pot.y+=tr.tmHeight;
    }
    else if(0X08==nChar)             //退格处理
    {
    COLORREF cr=cdc.SetTextColor(cdc.GetBkColor());
    cdc.TextOutW(_pot.x,_pot.y,str);
    str=str.Left(str.GetLength()-1);
    cdc.SetTextColor(cr);
    }
    else
    {
    str+=(char)nChar;
    }
    CSize sz=cdc.GetTextExtent(str);
     CPoint pt(_pot.x+sz.cx,_pot.y) ;
     SetCaretPos(pt);
     cdc.TextOutW(_pot.x,_pot.y,str);
     cdc.SelectObject(p);
      

  2.   

    你这是工程的字符集问题,默认的是UNICODE,你改成多字节试试
      

  3.   

    unicode也能支持多字符,你printf的时候要设置好那些%
      

  4.   

    http://bbs.csdn.net/topics/390210879
      

  5.   

    VC做一个记事本基本不用写代码。新建一个MFC Appwizard应用程序,视图选择从CEditView而不是CView继承确定