函数功能:该函数在属于当前线程的指定窗体里设置鼠标捕获。一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内。同一时刻仅仅能有一个窗体捕获鼠标。假设鼠标光标在还有一个线程创建的窗体上,仅仅有当鼠标键按下时系统才将鼠标输入指向指定的窗体。

1作用及參数编辑

函数原型:HWND SetCapture(HWND hwnd)。
參数:
hWnd:当前线程里要捕获鼠标的窗体句柄

返回值:返回值是上次捕获鼠标的窗体句柄

假设不存在那样的句柄。返回值是NULL

备注:仅仅有前台窗体才干捕获鼠标。

假设一个后台窗体想捕获鼠标,则该窗体仅为其光标热点在该窗体可见部份的鼠标事件接收消息。另外,即使前台窗体已捕获了鼠标。用户也可点击还有一个窗体。将其调入前台。当一个窗体不再须要全部的鼠标输入时。创建该窗体的线程应当调用函数ReleaseCapture来释放鼠标。

此函数不能被用来捕获还有一进程的鼠标输入。

Windows 95:调用SetCapture会引起失去鼠标捕获的窗体接收一个WM_CAPTURECHANGED消息。
速查:头文件:Winuser.h:输入库:user32.lib。

Javascript鼠标捕获
鼠标捕获(setCapture)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收全部鼠标事件。

2鼠标事件

url=7dqggZDt8OGe0lVrAEgDdNl4zCJ1BWVX_Yj6_95JmTMPsvXfRhb6mj9_0uFAUD-Zp9vRBcQlG4g42a-6R031Ca#" class="nslog:1019" title="编辑本段" style="text-decoration:none; color:rgb(136,136,136); height:15px; line-height:16px; padding-left:18px; background-color:transparent; font-size:12px; font-family:宋体; display:block">编辑

setCapture捕获下面鼠标事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。

程序中主要是要捕获onmousemove和onmouseup事件。
msdn的介绍中还说到setCapture有一个bool參数,用来设置在容器内的鼠标事件是否都被容器捕获。
容器就是指调用setCapture的对象,大概意思就是:
參数为true时(默认)容器会捕获容器内全部对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样)。
參数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象能够正常地触发事件和取消冒泡。

ReleaseCapture

url=8DHny2dyFblt43mcNT8pU_jlRFI7iV-9WsmP14KztbV6OyMcWnGB7J2FxA5tAC1SIsPw-oLX955G7hUmj96Ohq" style="text-decoration:none; color:rgb(160,160,160); padding-left:29px; line-height:25px; display:block; width:35px; height:25px; border:1px solid rgb(230,230,230); background-color:rgb(253,253,253); padding-right:0px">编辑

函数功能:该函数从当前线程中的窗体释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗体接收全部的鼠标输入(不管光标的位置在哪里),除非点击鼠标键时,光标热点在还有一个线程的窗体中。
函数原型:BOOL ReleaseCapture(VOlD)
參数:无。
返回值:假设函数调用成功,返回非零值。假设函数调用失败,返回值是零。若想获得很多其它的错误信息,请调用GetlastError函数。

备注:应用程序在调用函数SetCaPture之后调用此函数。
Windows 95:调用ReleaseCapture会引起失去鼠标捕获的窗体接收一个WM_CAPTURECHANGED消息。
速查:Windows NT:3.1及以上版本号;Windows:95及以上版本号:Windows CE:1.0及以上版本号;头文件:winuser.h。输入库:User32.lib。

SetCapture ReleaseCapture的更多相关文章

  1. SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP

    今天在窗口上绘图的时候,遇到一个问题:在特殊情况下,当用户在窗口中按下鼠标左键,然后移动到窗口外松开鼠标左键,这时程序中只能捕获到 WM_LBUTTONDOWN(按下) 和 WM_MOUSEMOVE( ...

  2. SetCapture、ReleaseCapture、GetCapture

    正常情况下,鼠标指针位于哪个窗口区域内,鼠标消息就自动发给哪个窗口.如果调用了SetCapture,之后无论鼠标的位置在哪,鼠标消息都发给指定的这个窗口,直到调用ReleaseCapture或者调用S ...

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

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

  4. 理解SetCapture()和ReleaseCapture()及GetCapture()作用

    正常情况下,鼠标指针位于哪个窗口区域内,鼠标消息就自动发给哪个窗口.如果调用了SetCapture,之后无论鼠标的位置在哪,鼠标消息都发给指定的这个窗口,直到调用ReleaseCapture或者调用S ...

  5. 理解SetCapture、ReleaseCapture、GetCapture(控制了消息发往哪个窗口,即消息窗口)

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

  6. js拖拽效果详细讲解

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 那些ie6已支持的方法属性,成为事实标准。或者方便大家的api

    很多api,都是ie6实现,后来其他w3c或其他浏览器支持,或者用类似的方法模拟 onselectionchange  判断选区改变 ,chrome已支持 Element.contains   判断元 ...

  8. Windows API 学习记录1

    这里面的好多函数不能死记硬背,知道有这个函数就行,等用到了,再回来细看 一.窗口管理函数包括以下几类: 按钮函数(Button) Microsoft提供了对话框和控制来支持应用程序与用户之间的交互通讯 ...

  9. JS拖拽系列--多元素拖拽,面向对象,es6拖拽

    最近不太忙,终于有时间,研究了一下早就想搞定的拖拽系列,先是写了面向过程式的,再做一个面向对象的,再顺便弄弄继承,最后玩一下ES6的class  不觉用了一天多,收获很大.拖拽弄完,想再弄一个拖放. ...

随机推荐

  1. PCI-X总线

    PCI-X接口是并连的PCI总线(Peripheral Components Interconnect)的更新版本号,仍採用传统的总线技术,只是有很多其它数量的接线针脚, 同一时候,如前所述的全部的连 ...

  2. MFC:重绘Button,定制CButton,自画CPngButton,求赐教(各种bug包括性能bug)谢谢谢谢

    [1.]CPngButton.h(资源是最后图片) #pragma once #include<atlimage.h> #define PNUM 19 #define PLAYTIME 1 ...

  3. Windows Services的1053错误的解决办法之一:修改注册表允许的响应时间

    Error: 'The service did not respond in a timely fashion' (ServicesPipeTimeout) when attempting when ...

  4. Coin Toss

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31329#problem/G 使用二维数组f[ i ] [ j  ] 表示前i 位中有j个 ...

  5. C++智能指针的实现

    说起智能指针,不少人都不陌生.比方auto_ptr.shared_ptr.unique_ptr.weak_ptr. 依据shared_ptr的功能,自己仿造也实现了个. 对于shared_ptr这样的 ...

  6. Swift - 使用NSURLSession加载数据、下载、上传文件

    NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ...

  7. MIPI CSI-2规范一——概述及层级

    MIPI CSI-2规范一——概述及层级 CSI-2概述 CSI-2规范定义了发送者和接收者之间传输和控制接口的标准数据.数据传输接口(指CSI-2)是单向差分串行接口,传输数据和始终信号:接口的物理 ...

  8. EasyUI - DataGrid 组建 - [ 删除,修改 ]

    效果: html代码: <div style="padding-top: 50px; width: 800px; margin: 0 auto;"> <!--使用 ...

  9. 碰撞回避算法(一) Velocity Obstacle

    碰撞回避是机器人导航,游戏AI等领域的基础课题.几十年来,有很多算法被提出.注意这里主要指的是局部的碰撞回避算法.尽管和全局的路径规划算法(A*算法等)有千丝万缕的联系.可是还是有所不同的(局部的碰撞 ...

  10. JSP的学习(1)——基本知识与底层原理

    通过之前的学习,我们已经对Servlet有所了解,现在我们先来学习JSP,当能使用JSP进行友好的页面显示之后,再回去学习Servlet的其他高级特性会将整个学习很好的融入进来. JSP,即Java ...