setCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由 document、window、object之类的自行来处理。这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰

另外,还有一个很重 要的事情是,在Win32上,mouse move的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一个mousemove,windows会周期性检查mouse 的位置变化来产生mousemove的事件。
所以,如果是一个很小的页面对象,比如一个直径5px的圆点,如果没有setCapture和 releaseCapture,那么在鼠标按住之后,快速的移动鼠标,就有可能鼠标移动走了,但是小圆点还在原地,就是因为下一次的mousemove事 件已经不再发给这个圆点对象了。

web开发和windows开发最大的区别就是windows开发是有状态的,而web开发是无状态的,在windows中,一切操作都可以由程序来控制 ,除非强制执行ctrl+alt+del;但web操作就不一样了,即使执行很重要的操作,用户一点击浏览器关闭按钮,就将前面操作成果化为乌有.尽管可以在onunload事件中加些代码,让用户可以选择是否退出,但不能从根本上解决问题!

有一点遗憾:setCapture和releaseCapture 不支持键盘事件.只对onmousedown, onmouseup, onmousemove, onclick, ondblclick, onmouseover, onmouseout这样的鼠标事件起作用.

setCapture 和 releaseCapture相关推荐

  1. 理解SetCapture、ReleaseCapture、GetCapture(控制了消息发往哪个窗口,是理解消息的关键)

    理解SetCapture.ReleaseCapture.GetCapture 正常情况下,鼠标指针位于哪个窗口区域内,鼠标消息就自动发给哪个窗口.如果调用了SetCapture,之后无论鼠标的位置在哪 ...

  2. win32中SetCapture 和 ReleaseCapture的使用

    最近在用win32写<visual C++经典游戏程序设计>中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数. 那么为什么需要用 ...

  3. setCapture和releaseCapture的小应用

    web开发和windows开发最大的区别就是windows开发是有状态的,而web开发是无状态的,在windows中,一切操作都可以由程序来控制 ,除非强制执行ctrl+alt+del;但web操作就 ...

  4. SetCapture()和ReleaseCapture()

    查MSND,对SetCapture()函数的说明为:"该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一 ...

  5. setCapture和releaseCapture

    setCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由 document.window.object之类的自行来处理.这样就保证 ...

  6. setCapture和releaseCapture的小应用(转)

    web开发和windows开发最大的区别就是windows开发是有状态的,而web开发是无状态的,在windows中,一切操作都可以由程序来控制 ,除非强制执行ctrl+alt+del;但web操作就 ...

  7. 关于SetCapture() 和 ReleaseCapture()的使用方法

    查MSND,对SetCapture()函数的说明为:"该函数在属于当前线程的指定窗体里设置鼠标捕获.一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内.同一时刻仅仅能有 ...

  8. 关于SetCapture() 和 ReleaseCapture()的用法

    http://blog.csdn.net/lanyzh0909/article/details/5543399 查MSND,对SetCapture()函数的说明为:"该函数在属于当前线程的指 ...

  9. 关于SetCapture() 和 ReleaseCapture()的用法的个人理解

    1. 函数功能:在当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内还是边界外.同一时刻只能有一个窗口捕获鼠标. 2. 失效条件: A. 当鼠标 ...

  10. win32 SetCapture 和 ReleaseCapture的使用

    最近在用win32写<visual C++经典游戏程序设计>中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数. 那么为什么需要用 ...

最新文章

  1. JS Array.reduce 实现 Array.map 和 Array.filter
  2. C#中教你一步步实现一个电话本窗体程序
  3. 一文看懂Transformer内部原理(含PyTorch实现)
  4. Netty HTTP on Android
  5. php安装好wampserver后出现的问题
  6. 如何部署前端react项目到服务器,Vue、React前端项目打包部署
  7. 深度学习推荐模型-DeepCrossing
  8. iperf android使用方法,FW: 使用Iperf工具测试android系统网络wifi的吞吐量wifithrougput...
  9. Android studio 常用的插件
  10. 2019年在NLP领域,资源有限的个人/团队能做哪些有价值有希望的工作?
  11. LINUX安装cuDNN
  12. [设计模式]工厂模式
  13. python webkit内核_GitHub - yunate/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
  14. cisp_pte培训试题
  15. iPhone媒体服务器修改,出现Apple媒体服务条款与条件已更改是怎么回事如何解决...
  16. OpenCV玩微信小游戏星途WeGoing
  17. 单利终值和现值matlab,单利终值现值和复利终值现值公式
  18. matlab中图像压缩
  19. 办公技巧整合(不定时更新)
  20. 美国十大被封杀网站排名

热门文章

  1. IV转换电路 IV放大 跨阻放大器 光电信号放大器 原理图及PCB设计分析
  2. Linux开机启动程序的两种方法
  3. J. Kitchen Plates
  4. [UE4]使用Is Locally Controlled解决第一人称和第三人称武器位置问题
  5. C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi
  6. CAP 定理和 BASE理论 (了解分布式事务理论模型)
  7. GA-BP模型的应用——刀具磨损程度预测
  8. 学校计算机室 qq管理,学校机房电脑屏蔽qq怎么办?
  9. 利用JavaScript从剪贴板获取图片并上传服务器
  10. NEW | UWA GOT支持PC项目