标题:容器控件拦截容器内控件的方法
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
最好能有同步或异步调动,能用异步时尽量用异步,这样效率高些,还能避免出现假死(无响应)
2022-11-17 13:13
sam_jiang
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:542
专家分:781
注 册:2021-10-13
得分:0 
回复 21楼 吹水佬
这个mousemove事件返回的nbutton值不对,能帮忙看看哪里出问题了吗?
2022-11-17 14:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用sam_jiang在2022-11-17 14:53:26的发言:

这个mousemove事件返回的nbutton值不对,能帮忙看看哪里出问题了吗?

还没看明白,如在textbox.mousemove当成form.mousemove来执行,是什么机制,会不会有冲突。
textbox.mousemove 与 form.mousemove 各有其独立消息机制(事件),触发时机是各自的。
2022-11-17 16:06
sam_jiang
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:542
专家分:781
注 册:2021-10-13
得分:0 
回复 23楼 吹水佬
这个事件冒泡的本质,其实是将控件的mousemove里的几个参数,传递给form的mousemove,由于nxcoord,和nycoord2个参数是以form为参照系的,所以当控件把几个参数传递给form时,form的mousemove就当其他控件是透明,从而实现模拟操作。

现在的问题是,子控件传递的nbutton参数出现了问题,当我们松开鼠标时,按理应该传递nbutton=0给form,不知道为什么,这个nbutton居然依然是1。。。

2022-11-17 20:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 24楼 sam_jiang
直接用事件当方法调用有风险,尤其是有参数,接收到的入口参数有时未必如你所愿。
windows用的是消息机制,消息有优先级、同步、异步。至于form的事件是系统触发的还是程序主动调动的就好难说谁先谁后。
2022-11-17 20:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
最好自定义一个form方法来处理,就可以想点就点。
2022-11-17 20:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510672-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.313692 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved