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

凡事都是一个“变”字,究天地之变化,研日月之更替。
到如今,程序也晓得72般变化,莫非是猴子转世?
可惜,我有照妖镜,任你如何变,我都能让你现原形!!!

在JavaScript中和Windows SDK编程中都有这个函数。
本文解决了则么使用SetCapture的问题:
经研究发现,
    并不能简单地理解为“捕获”;
原因如下:
    它有时候会引起程序出现”漏斗“!!!!什么原因呢????
     比如在WM_PAINT事件中都出现漏斗!!
     在Default中也出现漏斗!!
我的问题是:
     它在忙吗??
答案是:
     不!!
追根究底:
      因为它捕捉了所有的消息!!!
      包括,光标消息。而当时的光标消息是漏斗!!!
      而DefaultWindowProc默认的处理方式是
      "不论如何,保持不变!!"
以不变求万变:
      既然"不论如何,保持不变!!”,那么漏斗是如何“变”出来的呢??
不是“我变”就是“它变”:
      既然我“孙猴子”变不出来,那肯定是“如来佛”变出来的撒!!!
关于如来佛的传说:
      佛说:我不入地狱,谁入地狱.
     我说:如今到处是天堂,没有地狱可去呀。
      佛说:唉!是啊。我找了好久都没找到地狱。。我的泪
      我说:那就算了呗!也是,在这盛世中,你也只能做个泥菩萨了。
      于是,佛一生气,就随便找个地方钻了进去。。。。。。
      它来到了微软的操作系统中!真他妈的狠。。。。。
解决方法:
    应在OnButtonDown或者
    LBUTTONDOWN
   RBUTTONDOWN
   中进行设置

问题1:什么时候用ReleaseCapture呢?
    没有做任何限制,也就是说如果您不想使用默认的,也就是失去焦点才释放,可以自行设置什么时候释放。

问题2:系统什么时候默认调用ReleaseCapture呢?
  此问题经研究发现:
    系统会默认调用ReleaseCapture地。。。。。
    就是当当前窗口失去焦点时。
 
可以用GetCapture试一下,看能得到原来的Hwnd不能?
    
   

你可能感兴趣的:(JavaScript,编程,windows)