追根究底之以不变求万变:利用SetCapture捕获鼠标

xiaoxiao2021-02-28  74

凡事都是一个“变”字,究天地之变化,研日月之更替。 到如今,程序也晓得72般变化,莫非是猴子转世? 可惜,我有照妖镜,任你如何变,我都能让你现原形!!! 在JavaScript中和Windows SDK编程中都有这个函数。 本文解决了则么使用SetCapture的问题: 经研究发现,     并不能简单地理解为“捕获”; 原因如下:     它有时候会引起程序出现”漏斗“!!!!什么原因呢????      比如在WM_PAINT事件中都出现漏斗!!      在Default中也出现漏斗!! 我的问题是:      它在忙吗?? 答案是:      不!! 追根究底:       因为它捕捉了所有的消息!!!       包括,光标消息。而当时的光标消息是漏斗!!!       而DefaultWindowProc默认的处理方式是       "不论如何,保持不变!!" 以不变求万变:       既然"不论如何,保持不变!!”,那么漏斗是如何“变”出来的呢?? 不是“我变”就是“它变”:       既然我“孙猴子”变不出来,那肯定是“如来佛”变出来的撒!!! 关于如来佛的传说:       佛说:我不入地狱,谁入地狱.      我说:如今到处是天堂,没有地狱可去呀。       佛说:唉!是啊。我找了好久都没找到地狱。。我的泪       我说:那就算了呗!也是,在这盛世中,你也只能做个泥菩萨了。       于是,佛一生气,就随便找个地方钻了进去。。。。。。       它来到了微软的操作系统中!真他妈的狠。。。。。 解决方法:     应在OnButtonDown或者     LBUTTONDOWN    RBUTTONDOWN    中进行设置 问题1:什么时候用ReleaseCapture呢?     没有做任何限制,也就是说如果您不想使用默认的,也就是失去焦点才释放,可以自行设置什么时候释放。 问题2:系统什么时候默认调用ReleaseCapture呢?   此问题经研究发现:     系统会默认调用ReleaseCapture地。。。。。     就是当当前窗口失去焦点时。   可以用GetCapture试一下,看能得到原来的Hwnd不能?         
转载请注明原文地址: https://www.6miu.com/read-73093.html

最新回复(0)