在做项目的时候使用到了额外引用了MSFlexGrid控件,因为项目是Unicode环境,支持多语言,其中包括中文(简体,GB2312)和中文(繁体,Big5),WinXP操作系统语言是简体中文时,软件选择不同的语言环境,MSFlexGrid上的控件的语言能正常显示;WinXP操作系统选择语言为繁体中文时,MSFlexGrid上的控件的语言显示为乱码。调试发现,从语言文件里拿到的是正确的语言,只是m_cMSFlexGrid.SetTextMatrix(0, 0, (LPCTSTR)g_LoadString(IDS_STR_SUNDAY));控件显示语言不正常。
解决方法是:
1,选择MSFlexGrid控件,右键properties,最后一个“All”选项里,双击Font,设置Font为“Tahoma”。
2,在程序更换语言的地方加上m_cMSFlexGrid.SetCellFontName(_T("Terminal"));
这样编译后的控件上显示的语言才正确。
本文介绍了解决MSFlexGrid在不同操作系统语言环境下显示多语言(包括中文简体和繁体)时出现乱码的问题。通过设置字体为Tahoma及在程序中更改字体名称为Terminal来确保所有语言正确显示。
450

被折叠的 条评论
为什么被折叠?



