我只要把对话框的字体设成"MS Sans Serif"的确可以正确显示了,多谢晟哥帮忙了,呵呵,以前老麻烦你的(我是你公司对面的那所学校的,:) )。这样可以解决我的问题,如果我把字体设成System,是不是在在日文的操作系统上对话框就会自动使用日文的字体,在法语的操作系统上就可以自动使用法语的字体?我手头上没有这样的系统可以试试,不过我希望我的程序可以支持所有的这些语言,只要它机器上有相应的字体。
我需要从外部的一个文本文件(english.txt)调入资源,所有的资源都是放在这个文件中的。这样用户就可以很容易地实现本地化,即他只需要把english.txt中的文件翻译成他本地的相应语言(比如中文)即可。我的问题是这样的:我如果把对话框的字体设为“Microsoft Sans Serif”,将不能正确显示中文(CListCtrl好象使用的是对话框的字体,button什么的好象不是),如果我把对话框的字体设成“宋体”,中文倒是可以正常显示了,可是我觉得这样还是有问题的,比如法语,这样还是不能正确显示的。我的目标是:只要用户安装了相应的字体,并且把相应的语言文件翻译好了,就可以在对话框中正常显示,程序本身不需要重编译,这个问题应该如何解决呢?字体应该设成什么呢?
When an MFC application is run under a DBCS (Double-byte Character Set, including Japanese, Chinese and Korean) in Windows NT or Windows 95, the default font specified for the dialog boxes within that application will be changed to the system font if they were originally set as "MS Sans Serif" or "Helv" in the RC file.
Knowledge Base
Q152099
MFC Dialog Font Substitution Under DBCS System
To ghz(冰河):
用你的方法是可以的,谢谢了!:) 不过还有个问题,我的对话框上的资源都是放在一个文本文件中的,运行时会根据文本文件中的内容来设置相应控件中的字符串值,这样用户很容易地就把一种语言翻译成另一种语言,因此如果我把对话框设成中文字体的话,我想如果用户自己翻译了一种语言,比如法语或者希腊语,显示出来的依然会是乱码的,这个应该如何处理呢?谢谢!