希望官方出一个拦截消息的例子
本帖最后由 Fang0x378 于 2021-5-11 21:24 编辑除了窗口组件有消息过滤功能外,其他组件都没有消息过滤功能。其他组件怎么实现呢?
大神能给点提示吗?
按照窗口类库的方法好像不行呐。
很简单啊,直接覆盖对应虚拟方法就行了,在拦截方法中所有下属窗口组件的消息都会过来,根据窗口句柄判断一下就行了.
飞扬工作室 发表于 2021-3-31 09:37
很简单啊,直接覆盖对应虚拟方法就行了,在拦截方法中所有下属窗口组件的消息都会过来,根据窗口句柄判断一下 ...
谢谢吴总的回复。
好像真的可以了,原来没有注意到所有消息都会过滤 像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的窗口句柄参数进行组件过滤。 创世魂 发表于 2021-3-31 09:58
像添加事件一样,把这个消息过滤添加了,就可以通过这个虚拟方法里面的窗口句柄参数进行组件过滤。 ...
嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂 Fang0x378 发表于 2021-3-31 10:11
嗯嗯,这个我知道的。
我原来是想在子组件的类里面实现,想用嵌入式的方法实现。
现在貌似不用那么复杂 ...
请下载覆盖类库中的此文件:
增加了此事件,直接使用即可:
本帖最后由 Fang0x378 于 2021-3-31 11:29 编辑
飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:
吴总太给力了,马上修改了类库! 飞扬工作室 发表于 2021-3-31 10:49
请下载覆盖类库中的此文件:
这个自带的消息过滤,为什么 SendMessage发送的消息,是接受不到的,有时候还要自己子类化 才行 fengshangren 发表于 2021-3-31 11:01
这个自带的消息过滤,为什么 SendMessage发送的消息,是接受不到的,有时候还要自己子类化 才行 ...
这个是可以接收到的,我同时覆盖了WindowProc 已经成功截获到组件鼠标离开(WM_MOUSELEAVE)消息,有了这个功能,自绘组件就方便很多了。
页:
[1]
2