递归火山软件开发平台

标题: 希望官方出一个拦截消息的例子 [打印本页]

作者: Fang0x378    时间: 2021-3-31 09:28
标题: 希望官方出一个拦截消息的例子
本帖最后由 Fang0x378 于 2021-5-11 21:24 编辑

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

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

(, 下载次数: 104)



作者: 飞扬工作室    时间: 2021-3-31 09:37
很简单啊,直接覆盖对应虚拟方法就行了,在拦截方法中所有下属窗口组件的消息都会过来,根据窗口句柄判断一下就行了.

(, 下载次数: 94)


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

谢谢吴总的回复。
好像真的可以了,原来没有注意到所有消息都会过滤
作者: 创世魂    时间: 2021-3-31 09:58
像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的  窗口句柄  参数进行组件过滤。
作者: Fang0x378    时间: 2021-3-31 10:11
创世魂 发表于 2021-3-31 09:58
像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的  窗口句柄  参数进行组件过滤。 ...

嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂
作者: 飞扬工作室    时间: 2021-3-31 10:49
Fang0x378 发表于 2021-3-31 10:11
嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂 ...

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

(, 下载次数: 9)

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

(, 下载次数: 95)

作者: Fang0x378    时间: 2021-3-31 10:55
本帖最后由 Fang0x378 于 2021-3-31 11:29 编辑
飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:

吴总太给力了,马上修改了类库!
作者: fengshangren    时间: 2021-3-31 11:01
飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:

这个自带的消息过滤,为什么 SendMessage  发送的消息,是接受不到的,有时候还要自己子类化 才行
作者: 飞扬工作室    时间: 2021-3-31 11:11
fengshangren 发表于 2021-3-31 11:01
这个自带的消息过滤,为什么 SendMessage  发送的消息,是接受不到的,有时候还要自己子类化 才行 ...

这个是可以接收到的,我同时覆盖了WindowProc
作者: Fang0x378    时间: 2021-3-31 11:18
已经成功截获到组件鼠标离开(WM_MOUSELEAVE)消息,有了这个功能,自绘组件就方便很多了。

(, 下载次数: 102)

作者: Fang0x378    时间: 2021-5-11 21:21
fengshangren 发表于 2021-3-31 11:01
这个自带的消息过滤,为什么 SendMessage  发送的消息,是接受不到的,有时候还要自己子类化 才行 ...

今天试了一下,好像真的收不到  SendMessage  发送的消息
作者: Fang0x378    时间: 2021-5-11 21:23
飞扬工作室 发表于 2021-3-31 11:11
这个是可以接收到的,我同时覆盖了WindowProc

今天试了一下,好像真的收不到  SendMessage  发送的消息
作者: 穗玉天涯    时间: 2021-5-11 22:00
学习了,,,




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4