Clistbox显示乱码??彻底晕了

coderedwww 2011-09-02 01:28:23
VS2008下使用Clistbox显示一条信息出现乱码,代码如下:

...
CString displayString;
displayString.Format("Connecting to TT using clientId %d ...", classtp.m_clientId);
int i = m_Status.AddString(displayString);

stdafx.h里面如果去掉
#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")
则显示正常, 估计是编码问题可小弟不知道该如何解决, 在线等解答中~~~~
...全文
250 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-09-30
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
coderedwww 2011-09-02
  • 打赏
  • 举报
回复
设置断点临时变量显示没问题啊, 哎没辙了
[Quote=引用 8 楼 shen_wei 的回复:]

CString displayString;
displayString.Format("Connecting to TT using clientId %d ...", classtp.m_clientId);

这句debug你显示的是否正常??
[/Quote]
龙行天下之Sky 2011-09-02
  • 打赏
  • 举报
回复
可能是你的字符集问题
把多字节字符集改成Unicode字符集
以后写程序时,遇到字符串精灵用TCHAR类型,如果是字符串常量在用_TEXT或_T进行处理,VS会自动转换编码格式的
建议用Unicode编码,因为Windows2000以后,所有的API都是用Unicode写的,即使我们用多字节,API也会做相应的转换,浪费时间浪费空间
天外怪魔 2011-09-02
  • 打赏
  • 举报
回复
经过测试,使用非Unicode编码,没有发现楼主说的问题。
Ginie 2011-09-02
  • 打赏
  • 举报
回复
只有LIST显示乱码么,其他控件显示文本内容会是乱码么?debug下看是不是
shen_wei 2011-09-02
  • 打赏
  • 举报
回复
CString displayString;
displayString.Format("Connecting to TT using clientId %d ...", classtp.m_clientId);

这句debug你显示的是否正常??
coderedwww 2011-09-02
  • 打赏
  • 举报
回复
是多字节字符集, 您的意思是改成unicode? 但这样会导致很多编译错误

[Quote=引用 4 楼 visualeleven 的回复:]
你当前的工程编码应该是multi-byte的吧,否则的话
CString displayString;
displayString.Format("Connecting to TT using clientId %d ...", classtp.m_clientId);
int i = m_Status.AddString(displayString);
这里的CString::Form……
[/Quote]
coderedwww 2011-09-02
  • 打赏
  • 举报
回复
试过_T宏, 问题依旧
[Quote=引用 3 楼 fandh 的回复:]

估计是unicode的原因,
displayString.Format(_T("Connecting to TT using clientId %d ..."), classtp.m_clientId);
int i = m_Status.AddString(displayString);
这样试试

发重复了,呵呵
[/Quote]
叶落寒山 2011-09-02
  • 打赏
  • 举报
回复
XP风格就是通过给控件加一些特效(例如:边界圆角化)达到美化界面的效果。
XP风格的UI效果是由Microsoft.Windows.Common-Controls提供的一种实现,为了拥有这种效果,你需要让你的程序依赖于Microsoft.Windows.Common-Controls这个组件。微软提供了Manifest来让让我们声明这种依赖。

★★★方法一

在Win32程序中默认没有使用Windows XP的视觉风格
如果你使用的是Visual Studio 2005以后的版本VS,
只需要在stdafx.h中加入以下代码即可:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' " "version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

MFC中默认是使用了视觉样式的,不过它用的以下代码:

01) #ifdef _UNICODE
02) #if defined _M_IX86
03) #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' " "version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
04) #elif defined _M_IA64
05) #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' " "version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
06) #elif defined _M_X64
07) #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' " "version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
08) #else
09) #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' " "version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
10) #endif
11) #endif
如果你的项目是ANSI,可以把第一行的#ifdef _UNICODE和最后一行的#endif去掉就可以了。

Eleven 2011-09-02
  • 打赏
  • 举报
回复
你当前的工程编码应该是multi-byte的吧,否则的话
CString displayString;
displayString.Format("Connecting to TT using clientId %d ...", classtp.m_clientId);
int i = m_Status.AddString(displayString);
这里的CString::Format()应该会报错的。
fandh 2011-09-02
  • 打赏
  • 举报
回复
估计是unicode的原因,
displayString.Format(_T("Connecting to TT using clientId %d ..."), classtp.m_clientId);
int i = m_Status.AddString(displayString);
这样试试

发重复了,呵呵
coderedwww 2011-09-02
  • 打赏
  • 举报
回复
谢谢回复
是"Connecting to TT using clientId ...“这句在box里面显示为乱码
Eleven 2011-09-02
  • 打赏
  • 举报
回复
你添加的CListBox中的数据也没有看到中文啊?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧