新接手了一个维护一个用VB写的程序,发现里面UI用很多用图片做的文字,估计是因为简繁体的问题吧。因为公司的电脑,有简体,繁体,英文各种系统,这个程序也有一定的历史了,想必当时还有WIN98,这样就更纠结了。
于是在网上找了一些有关VB简繁体的资料,如下:
>. VB6是否是简体中文版的?
建议使用英文版,另外就是编译时操作系统的语言环境应当与程序当中所使用的文字的当前语言环境一致,即不要显示乱码
>. 用资源文件
樓主一定要記得把字體改為繁體下支持的字體
如:在簡體下為宋體,在繁體系統下找不到宋體,系統會找其它的字體來替換,此時就未會支持中文
所以還得自己把字體改為如細明體之類的字體
http://www.mndsoft.com/blog/blogview.asp?logID=596&cateID=
這是我整理後的一個專門改簡體工程為繁體工程的一個小工具,不過上面說到的字體還得手工修改
>. 要用资源文件文件啦。我们现在的系统都是这样。
DengXingJie(杰西) 说的才是真的
我做的系统支持简体中文\繁体中文\英文\日文,显示都没有问题,关键的问题就是你要在启动程序时判断操作系统的语言环境,然后把所有的控件(有font属性的,其他的不用管)的font改成相应的字体,比如简体中文为宋体,日文为 “明朝 “等,然后再显示相应语言的文字,就不会乱码了
用文本编辑软件打开所有frm文件(窗体文件),寻找 “Charset “项目,把后面的值由原来的134(简体中文)改成繁体中文的(对应的值我忘了,你查一下吧)
Private Const DEFAULT_CHARSET = 1
Private Const SYMBOL_CHARSET = 2
Private Const SHIFTJIS_CHARSET = 128
Private Const HANGEUL_CHARSET = 129
Private Const CHINESEBIG5_CHARSET = 136
Private Const CHINESESIMPLIFIED_CHARSET = 134
>. 使用获取系统语言版本API函数GetSystemDefaultLCID()
Private Declare Function GetSystemDefaultLCID Lib “kernel32 ” () As Long
Private Function Language() As String
Dim LocaleID As Long
LocaleID = GetSystemDefaultLCID()
Select Case LocaleID
Case &H404: Language = “中文繁体. ”
Case &H804: Language = “中文简体. ”
Case 1033: Language = “英文 ”
Case Else: Language = “其它 ”
End Select
End Function
看了这么多,各有千秋啊。也不想搞这么多了,原来的UI就不理它了,就用最后一种方法,判断系统语言,然后把程序里面的一些对话框做成了多语言提示得了。