程序中CView类继承自CListView,在视图类显示的时候,使用
char   pName[22];
...
...
CString str;
str.Format("%s",pName);//pName中有中文 英文和数字AfxMessageBox(str); //此时对话框弹出的内容都是正确的lvitem.pszText =pName ;//可是在视图中显示的时候,英文和数字显示是正确的,中文显示是乱码,是怎么回事呢?

解决方案 »

  1.   

    试试将 char  pName[22]; 改为 TCHAR pName[22]。
      

  2.   

    还要注意一下所复制的字符串的长度是否会超过 pName 的大小。
      

  3.   

    lvitem结构体中 pszText是LPTSTR类型的,在VC6.0中是单字节的吧,改成TCHAR不可以吧
      

  4.   

    直接赋值lvitem.pszText ="我";显示都是乱码的
            lvitem.pszText =“123”,则显示正确,怎么回事呢
          
      

  5.   

    LZ 比较强悍,头一次听说。字符安全拷贝的话用 StringCchCopyN、StringCbCopyN
      

  6.   

    楼上你还真搞笑,CView CListView 的关系只要 MFC 熟的人哪个不知道?
    只是说 lz 的表达问题
      

  7.   

    lz 的字符串复制,注意使用 _T 或者 TEXT 或者 L 宏
    比如 _T("this is cool")
      

  8.   

    是我表达问题,是我自己的View类,C***View继承自 CListView