技术宅的结界

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

QQ登录

只需一步,快速开始

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

【VB6】【自定义内置控件】UnicodeTextBox.ctl

[复制链接]

50

主题

266

帖子

8665

积分

用户组: 管理员

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

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

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

x
这是一个“内置控件”,无需携带OCX或DLL。只需把这个文件加入到你的VB工程里,即可像使用普通TextBox一样使用这个支持UNICODE的TextBox。它支持的属性仅有几个(Flat、Text、MultiLine),也不支持任何事件。但是提供了句柄,你可以通过子类化来实现截获事件。
+.png
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

7

主题

149

帖子

8359

积分

用户组: 真·技术宅

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

怎么感觉不对劲呢?我记得好像是 UserControl_Initialize 里面不能使用 UserControl.hWnd 吧,比较这是这对象创建的时候执行的,这个时候控件都没创建。需要在 InitProperties 和 ReadProperties 这俩事件里面进行。

点评

补充一句,你说的利用DefWindowProcW给VB窗口设置包含UNICODE字符的标题,只在WIN8及后续系统才有效,WIN7和之前的系统都不行(可能是没manifest的原因)。  发表于 2022-6-1 16:45
你在UserControl_Initialize里加一句MsgBox CStr(UserControl.hWnd)就知道了。  发表于 2022-6-1 16:37

7

主题

149

帖子

8359

积分

用户组: 真·技术宅

UID
4293
精华
5
威望
424 点
宅币
6508 个
贡献
829 次
宅之契约
0 份
在线时间
248 小时
注册时间
2018-9-19
发表于 2022-6-3 10:16:53 | 显示全部楼层
系统消息 发表于 2022-6-1 12:37
怎么感觉不对劲呢?我记得好像是 UserControl_Initialize 里面不能使用 UserControl.hWnd 吧,比较这是这对 ...

我去试了一下,没想到居然可以用,看来是我记错了,只有 Print、Ambient 和 Extender 才是不能在 UserControl_Initialize 中使用,hWnd 是可以使用的。
最神奇的是,在你使用了 hWnd 之后,Print 就开始可以用了(原理和Form类似,隐式自动Load),但 Ambient 和 Extender 还是不能用(只有等控件与调用者把父容器连接上了才可以,这种情况要在 UserControl_InitProperties 和 UserControl_ReadProperties 里面才可以)。

1096

主题

2683

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
240
威望
649 点
宅币
22725 个
贡献
46121 次
宅之契约
0 份
在线时间
2167 小时
注册时间
2014-1-26
发表于 2022-6-3 13:04:30 | 显示全部楼层
你这个竟然不支持事件!

VB6 里面声明事件的方法是在用户控件的开头(第一个过程或函数的前面)使用这样的语句:
  1. Public Event 事件名(参数列表)
复制代码
然后在应当触发事件的地方使用以下代码来触发事件:
  1. RaiseEvent 事件名(参数列表)
复制代码
举例:

vbevent.png

该代码将 PictureBox 制作的“picItemList”的 Click 和 DblClick 事件包装为本控件自己的点击事件、双击事件。

类似的,KeyDown、KeyUp、MouseDown、MouseUp、MouseMove 等事件也可以像这样封装。

评分

参与人数 1威望 +100 宅币 +100 贡献 +100 收起 理由
Golden Blonde + 100 + 100 + 100 赞!

查看全部评分

1

主题

120

帖子

208

积分

用户组: 中·技术宅

UID
7535
精华
0
威望
0 点
宅币
88 个
贡献
0 次
宅之契约
0 份
在线时间
17 小时
注册时间
2021-10-16
发表于 2022-6-7 10:16:00 | 显示全部楼层
珍惜生命,果断回帖。

0

主题

6

帖子

29

积分

用户组: 初·技术宅

UID
7859
精华
0
威望
2 点
宅币
19 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2022-5-24
发表于 2022-8-11 11:40:17 | 显示全部楼层
为什么不支持事件呢

本版积分规则

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

GMT+8, 2022-10-7 02:12 , Processed in 0.040223 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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