技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1134|回复: 8
收起左侧

【VB6】【全网首发】在经典控件上使用UNICODE的方案(第1季)

[复制链接]

50

主题

266

帖子

8665

积分

用户组: 管理员

UID
77
精华
15
威望
204 点
宅币
7699 个
贡献
217 次
宅之契约
0 份
在线时间
215 小时
注册时间
2014-2-22
发表于 2022-5-13 22:01:48 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

x
基础说明:使用UNICODE有什么意义?
很多人觉得,用ANSI字符即可显示中文,用UNICODE字符有啥意义呢?使用UNICODE字符的意义在于,可以在一个字符串里同时显示多种语言。比如在中文系统里,ANSI字符串显示中文和英文没问题,但如果显示德语法语,那就会出现一片问号。所以,如果你的程序要正确显示3种(或以上)的语言,而且无论在什么系统下都不乱码,就必须使用UNICODE字符。

主要难题:如何在控件上使用UNICODE字符串?
首先,存储UNICODE字符串是没问题的,因为VB字符串是BSTR,本质上就是UNICODE字符串。
其次,调用UNICODE版本的API(就是末尾带W的API,比如MessageBoxW)也是没问题的,用StrPtr就可以拿到VB字符串的UNICODE字符数组的地址。
真正的难题在于,如何让控件正确显示UNICODE字符串。无论是直接赋值,还是通过SendMessage设置内容,你最终只能看到一串问号。

解决方案:
游客,如果您要查看本帖隐藏内容请回复
代码演示:
游客,如果您要查看本帖隐藏内容请回复
程序效果:
.png
从此图可以看出,VB窗体不能正确显示UNICODE字符串,但MessageBoxW和上文提到的控件就可以。但是,这套控件有个很邪门的地方:
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

1096

主题

2683

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
649 点
宅币
22725 个
贡献
46121 次
宅之契约
0 份
在线时间
2167 小时
注册时间
2014-1-26
发表于 2022-5-13 22:39:15 | 显示全部楼层
谷歌搜了一下「сладкий」大概是甜的意思吧。

你这个方法真是超出我的意料,我甚至不知道这个方法。

这套路和 VB6 常见的“XP特效美化法”很像。屌啊

11

主题

34

帖子

518

积分

用户组: 大·技术宅

UID
5148
精华
3
威望
7 点
宅币
425 个
贡献
30 次
宅之契约
0 份
在线时间
37 小时
注册时间
2019-7-17
发表于 2022-5-15 11:07:31 | 显示全部楼层
一开始就是这个 ANSI 的“特性”逼我走上 .NET 的道路的(
qaq

0

主题

22

帖子

558

积分

用户组: 大·技术宅

UID
7437
精华
0
威望
112 点
宅币
202 个
贡献
110 次
宅之契约
0 份
在线时间
23 小时
注册时间
2021-9-11
发表于 2022-5-15 16:48:37 | 显示全部楼层
学习学习
回复

使用道具 举报

4

主题

38

帖子

647

积分

用户组: 大·技术宅

UID
7138
精华
0
威望
17 点
宅币
560 个
贡献
15 次
宅之契约
0 份
在线时间
62 小时
注册时间
2021-5-11
发表于 2022-5-18 22:01:19 | 显示全部楼层
这连论坛坛主都不知道的办法,值得观摩观摩

4

主题

38

帖子

647

积分

用户组: 大·技术宅

UID
7138
精华
0
威望
17 点
宅币
560 个
贡献
15 次
宅之契约
0 份
在线时间
62 小时
注册时间
2021-5-11
发表于 2022-5-19 12:36:40 | 显示全部楼层
没有找到Office97的包怎么办?

50

主题

266

帖子

8665

积分

用户组: 管理员

UID
77
精华
15
威望
204 点
宅币
7699 个
贡献
217 次
宅之契约
0 份
在线时间
215 小时
注册时间
2014-2-22
 楼主| 发表于 2022-5-19 14:53:12 | 显示全部楼层
WeaponJang 发表于 2022-5-19 12:36
没有找到Office97的包怎么办?


这个网站有很多老东西:
https://winworldpc.com/download/ ... 9-8581-fa163e9022f0

1

主题

120

帖子

208

积分

用户组: 中·技术宅

UID
7535
精华
0
威望
0 点
宅币
88 个
贡献
0 次
宅之契约
0 份
在线时间
17 小时
注册时间
2021-10-16
发表于 2022-5-19 14:55:36 | 显示全部楼层
此贴必火,占位刘留名~~~~

0

主题

2

帖子

17

积分

用户组: 初·技术宅

UID
8064
精华
0
威望
2 点
宅币
11 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2022-9-18
发表于 2022-9-18 06:21:00 | 显示全部楼层
为了看unicode难题

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2022-10-7 01:13 , Processed in 0.040902 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表