【VB6】【全网首发】在经典控件上使用UNICODE的方案(第1季)
基础说明:使用UNICODE有什么意义?很多人觉得,用ANSI字符即可显示中文,用UNICODE字符有啥意义呢?使用UNICODE字符的意义在于,可以在一个字符串里同时显示多种语言。比如在中文系统里,ANSI字符串显示中文和英文没问题,但如果显示德语法语,那就会出现一片问号。所以,如果你的程序要正确显示3种(或以上)的语言,而且无论在什么系统下都不乱码,就必须使用UNICODE字符。
主要难题:如何在控件上使用UNICODE字符串?
首先,存储UNICODE字符串是没问题的,因为VB字符串是BSTR,本质上就是UNICODE字符串。
其次,调用UNICODE版本的API(就是末尾带W的API,比如MessageBoxW)也是没问题的,用StrPtr就可以拿到VB字符串的UNICODE字符数组的地址。
真正的难题在于,如何让控件正确显示UNICODE字符串。无论是直接赋值,还是通过SendMessage设置内容,你最终只能看到一串问号。
解决方案:**** Hidden Message *****代码演示:
**** Hidden Message *****程序效果:
从此图可以看出,VB窗体不能正确显示UNICODE字符串,但MessageBoxW和上文提到的控件就可以。但是,这套控件有个很邪门的地方:**** Hidden Message ***** 谷歌搜了一下「сладкий」大概是甜的意思吧。
你这个方法真是超出我的意料,我甚至不知道这个方法。
这套路和 VB6 常见的“XP特效美化法”很像。屌啊
一开始就是这个 ANSI 的“特性”逼我走上 .NET 的道路的(
qaq 学习学习 这连论坛坛主都不知道的办法,值得观摩观摩 没有找到Office97的包怎么办? WeaponJang 发表于 2022-5-19 12:36
没有找到Office97的包怎么办?
这个网站有很多老东西:
https://winworldpc.com/download/c80848c9-5330-11e9-8581-fa163e9022f0 此贴必火,占位刘留名~~~~ 为了看unicode难题 :o 学习一下 Wow!好神奇的样子! 火钳刘留名~~~~ 吊炸天了吧。看看莎 学习学习 让我康康 Good Job!:lol 不错 非常感谢高手的分享 在经典控件上使用UNICODE的方案 我也来围观下!