技术宅的结界

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

QQ登录

只需一步,快速开始

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

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

[复制链接]

50

主题

266

帖子

8665

积分

用户组: 管理员

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

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

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

x
首先致谢用户【系统消息】,他的一段提示给了我很大的帮助。本贴解决了在标题栏、菜单、标签、文本框、按钮、框架、列表框、组合框、单选按钮、多选按钮上使用UNICODE的困扰,而且没有使用非自带控件,不需要开启“XP风格”,纯粹就是API调用
+.png

解决方案:
游客,如果您要查看本帖隐藏内容请回复
代码:
游客,如果您要查看本帖隐藏内容请回复
使用微软控件的解决方案:https://www.0xaa55.com/thread-26612-1-1.html
各种WINDOWS控件使用范例大杂烩:https://www.0xaa55.com/thread-1421-1-3.html
回复

使用道具 举报

1096

主题

2683

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
649 点
宅币
22725 个
贡献
46121 次
宅之契约
0 份
在线时间
2167 小时
注册时间
2014-1-26
发表于 2022-5-25 21:35:53 | 显示全部楼层
竟然使用障眼法!假装用的是原生控件,但直接用 API 创建了控件。

不过很可能这个 Combobox 是可以找到办法像 YY菌 说的那样用 CallWindowProcW 设置 Unicode 的。

30

主题

208

帖子

2479

积分

用户组: 版主

UID
1821
精华
7
威望
69 点
宅币
1892 个
贡献
206 次
宅之契约
0 份
在线时间
400 小时
注册时间
2016-7-12
发表于 2022-5-25 23:46:54 | 显示全部楼层
0xAA55 发表于 2022-5-25 21:35
竟然使用障眼法!假装用的是原生控件,但直接用 API 创建了控件。

不过很可能这个 Combobox 是可以找到办 ...

combox可以直接使用ImageCombo 那玩意就是系统原生的

1

主题

120

帖子

208

积分

用户组: 中·技术宅

UID
7535
精华
0
威望
0 点
宅币
88 个
贡献
0 次
宅之契约
0 份
在线时间
17 小时
注册时间
2021-10-16
发表于 2022-5-26 09:19:33 | 显示全部楼层
非常感谢~~支持~~~

4

主题

38

帖子

647

积分

用户组: 大·技术宅

UID
7138
精华
0
威望
17 点
宅币
560 个
贡献
15 次
宅之契约
0 份
在线时间
62 小时
注册时间
2021-5-11
发表于 2022-5-26 10:23:59 | 显示全部楼层
障眼法可还行,这不是变成自欺欺人了吗,

1096

主题

2683

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
649 点
宅币
22725 个
贡献
46121 次
宅之契约
0 份
在线时间
2167 小时
注册时间
2014-1-26
发表于 2022-5-26 17:11:50 | 显示全部楼层
WeaponJang 发表于 2022-5-26 10:23
障眼法可还行,这不是变成自欺欺人了吗,

这不叫自欺欺人,这叫实现功能。程序员的事能叫自欺欺人吗?

7

主题

149

帖子

8359

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
424 点
宅币
6508 个
贡献
829 次
宅之契约
0 份
在线时间
248 小时
注册时间
2018-9-19
发表于 2022-5-26 18:42:44 | 显示全部楼层
本帖最后由 系统消息 于 2022-5-26 19:07 编辑

提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆分:
[Visual Basic] 纯文本查看 复制代码
Type DWord
        LoWord As Integer
        HiWord As Integer
End Type

Declare Function SplitDWord Lib "msvbvm60" Alias "#644"(ByVal DWord As Long) As DWord

Sub Test()
        Dim dw As DWord
        dw = SpliteDWord(&HA1B2C3D4)
        ?Hex$(dw.LoWord), Hex$(dw.HiWord)        ' 输出:C3D4        A1B2
End Sub

同理,我们也可以用此方法来拆分RGBA颜色:
[Visual Basic] 纯文本查看 复制代码
Type RGBAColor
        Red As Byte
        Green As Byte
        Blue As Byte
        Alpha As Byte
End Type

Declare Function SplitRGBA Lib "msvbvm60" Alias "#644"(ByVal Color As ColorConstants) As RGBAColor

0

主题

22

帖子

558

积分

用户组: 大·技术宅

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

使用道具 举报

0

主题

22

帖子

558

积分

用户组: 大·技术宅

UID
7437
精华
0
威望
112 点
宅币
202 个
贡献
110 次
宅之契约
0 份
在线时间
23 小时
注册时间
2021-9-11
发表于 2022-5-27 06:47:43 | 显示全部楼层
我觉得子类化要想个办法 不然加多少个控件 就要声明多少个 函数指针变量 有点挫
是不是这样?

11

主题

34

帖子

518

积分

用户组: 大·技术宅

UID
5148
精华
3
威望
7 点
宅币
425 个
贡献
30 次
宅之契约
0 份
在线时间
37 小时
注册时间
2019-7-17
发表于 2022-5-27 12:48:45 | 显示全部楼层
就我不回复看不见是吗( qaq

50

主题

266

帖子

8665

积分

用户组: 管理员

UID
77
精华
15
威望
204 点
宅币
7699 个
贡献
217 次
宅之契约
0 份
在线时间
215 小时
注册时间
2014-2-22
 楼主| 发表于 2022-5-29 04:52:38 | 显示全部楼层
系统消息 发表于 2022-5-26 18:42
提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆 ...

本意上是不想调用API,如果要调用API的话,直接用RtlMoveMemory不就行了。
  1. dim words(1) as integer
  2. RtlMoveMemory varptr(words(0)),varptr(dword),4
  3. loword=words(0)
  4. hiword=words(1)
复制代码

7

主题

149

帖子

8359

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
424 点
宅币
6508 个
贡献
829 次
宅之契约
0 份
在线时间
248 小时
注册时间
2018-9-19
发表于 2022-5-30 21:32:00 | 显示全部楼层
tlwh163 发表于 2022-5-27 06:47
我觉得子类化要想个办法 不然加多少个控件 就要声明多少个 函数指针变量 有点挫
是不是这样? ...

你的这个问题我早已解决了,我以前写过一个安全子类化组件,可以在类模块(包括窗体、用户控件等)中用WithEvents事件的方式来接收窗口消息,并且在IDE中断点调试不会崩溃。

SafeSubclass-V0_1.zip

6.5 KB, 阅读权限: 10, 下载次数: 3

VB安全子类化

0

主题

1

帖子

15

积分

用户组: 初·技术宅

UID
8017
精华
0
威望
2 点
宅币
10 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2022-8-11
发表于 2022-8-11 18:05:24 | 显示全部楼层
正好我写爬虫需要
因为现在的网页大多数都是UTF-8编码

0

主题

2

帖子

17

积分

用户组: 初·技术宅

UID
8064
精华
0
威望
2 点
宅币
11 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2022-9-18
发表于 2022-9-18 06:24:02 | 显示全部楼层
第一季的我会了,看看第二季

本版积分规则

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

GMT+8, 2022-10-7 00:44 , Processed in 0.052526 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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