递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 15900|回复: 12
打印 上一主题 下一主题

[视窗] 希望官方出一个拦截消息的例子

[复制链接]

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
跳转到指定楼层
楼主
发表于 2021-3-31 09:28:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Fang0x378 于 2021-5-11 21:24 编辑

除了窗口组件有消息过滤功能外,其他组件都没有消息过滤功能。其他组件怎么实现呢?

大神能给点提示吗?
按照窗口类库的方法好像不行呐。




非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

62

主题

1674

帖子

8613

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8613
沙发
发表于 2021-3-31 09:37:30 | 只看该作者
很简单啊,直接覆盖对应虚拟方法就行了,在拦截方法中所有下属窗口组件的消息都会过来,根据窗口句柄判断一下就行了.



回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
板凳
 楼主| 发表于 2021-3-31 09:53:16 | 只看该作者
飞扬工作室 发表于 2021-3-31 09:37
很简单啊,直接覆盖对应虚拟方法就行了,在拦截方法中所有下属窗口组件的消息都会过来,根据窗口句柄判断一下 ...

谢谢吴总的回复。
好像真的可以了,原来没有注意到所有消息都会过滤
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40545
地板
发表于 2021-3-31 09:58:42 | 只看该作者
像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的  窗口句柄  参数进行组件过滤。

搜狗截图20210331095755.png (5.63 KB, 下载次数: 107)

搜狗截图20210331095755.png
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
5#
 楼主| 发表于 2021-3-31 10:11:29 | 只看该作者
创世魂 发表于 2021-3-31 09:58
像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的  窗口句柄  参数进行组件过滤。 ...

嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

62

主题

1674

帖子

8613

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8613
6#
发表于 2021-3-31 10:49:01 | 只看该作者
Fang0x378 发表于 2021-3-31 10:11
嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂 ...

请下载覆盖类库中的此文件:

w_mfc_ui_base.v (302.95 KB, 下载次数: 9)

增加了此事件,直接使用即可:


回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
7#
 楼主| 发表于 2021-3-31 10:55:51 | 只看该作者
本帖最后由 Fang0x378 于 2021-3-31 11:29 编辑
飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:

吴总太给力了,马上修改了类库!
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

43

主题

313

帖子

3602

积分

论坛元老

Rank: 8Rank: 8

积分
3602
8#
发表于 2021-3-31 11:01:08 | 只看该作者
飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:

这个自带的消息过滤,为什么 SendMessage  发送的消息,是接受不到的,有时候还要自己子类化 才行
回复

使用道具 举报

62

主题

1674

帖子

8613

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8613
9#
发表于 2021-3-31 11:11:25 | 只看该作者
fengshangren 发表于 2021-3-31 11:01
这个自带的消息过滤,为什么 SendMessage  发送的消息,是接受不到的,有时候还要自己子类化 才行 ...

这个是可以接收到的,我同时覆盖了WindowProc
回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
10#
 楼主| 发表于 2021-3-31 11:18:42 | 只看该作者
已经成功截获到组件鼠标离开(WM_MOUSELEAVE)消息,有了这个功能,自绘组件就方便很多了。


非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 14:12 , Processed in 0.092592 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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