标题:请问,当窗体 Show 0 时,能否在整个窗体(包含其中的控件)失去焦点时,触 ...
只看楼主
mansohu
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2013-3-20
结帖率:21.05%
已结贴  问题点数:5 回复次数:4 
请问,当窗体 Show 0 时,能否在整个窗体(包含其中的控件)失去焦点时,触发事件?
也就是说 鼠标点到了窗体以外的东西时(注意,不是窗体失焦,是窗体及其内部控件都没有焦点),能否触发事件?谢谢!
2016-03-31 17:36
chen3523
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:33
帖 子:223
专家分:1165
注 册:2013-2-12
得分:3 
看见你的问题,想起自己当年。无人回复,点击一试,原来如此,求人不如求自己。

调试失败3次后,关机睡觉,当醒来时多有收获。
2016-04-04 15:05
mansohu
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2013-3-20
得分:0 
回复 2楼 chen3523
我是个外行,此问题困扰多天,不得要领,还请帮忙指点,多谢多谢!
2016-04-04 16:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
可用WinAPI实现,主要相关API:
SetCapture()
ReleaseCapture()
GetCursorPos()
WindowFromPoint()
思路:
适当时候用 SetCapture() 设置当前窗口接收鼠标消息(包括窗口外边的鼠标消息)。
拦截鼠标按下左键消息。
判断鼠标座标的窗口句柄是否当前窗口句柄。
如果不是就认为是点击当前窗口之外。
2016-04-04 16:33
mansohu
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2013-3-20
得分:0 
回复 4楼 吹水佬
非常感谢!我回去试一下
2016-04-05 09:30



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




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

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