none
vs2005 c++中wm_char消息中怎么输出中文 RRS feed

  • 问题

  • void CMFC_PaintView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
     {
     // TODO: 在此添加消息处理程序代码和/或调用默认值

       CClientDC dc(this);
      TEXTMETRIC tm;
      dc.GetTextMetrics(&tm);
      strline +=(char)nChar;//将uint类型强制转换为char类型,追加字符
       dc.TextOutW(point.x,point.y,strline);


     CView::OnChar(nChar, nRepCnt, nFlags);
     }
    可以在客户区输出键盘上按下的字符,怎么才能输出中文呢?

    2009年10月26日 4:59

答案

  • strline +=(char)nChar;//将uint类型强制转换为char类型,追加字符
    -> 
    strline +=static_cast<WCHAR>(nChar);
    但是TextOut显示文字会有内存泄漏。这个问题一直没有解决。


    麻烦把正确答案设为解答。
    • 已标记为答案 BigBadBoy 2009年10月27日 9:50
    2009年10月27日 2:09
    版主

全部回复

  • 需要WCHAR。另外TextOutW会有内存泄漏。
    麻烦把正确答案设为解答。
    2009年10月26日 6:31
    版主
  • 初学c++,看的是孙鑫老师的视频,他里面可以输入中文,我的不行.另外对wchar不了解,麻烦高手修改下代码,谢谢.......
    2009年10月26日 10:58
  • strline +=(char)nChar;//将uint类型强制转换为char类型,追加字符
    -> 
    strline +=static_cast<WCHAR>(nChar);
    但是TextOut显示文字会有内存泄漏。这个问题一直没有解决。


    麻烦把正确答案设为解答。
    • 已标记为答案 BigBadBoy 2009年10月27日 9:50
    2009年10月27日 2:09
    版主
  • thank you
    2009年10月27日 9:50