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

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. [TroubleShootin]The backup set holds a backup of a database other than the existing &#39;xxdb&#39; database.

     One: he backup set holds a backup of a database other than the existing 'xxdb' database Sometime ...

  2. STM32 控制步进电机 28BYJ-48

    STM32 控制步进电机 28BYJ-48  http://blog.chinaunix.net/uid-12664992-id-300272.html 步进电机驱动最简化的逻辑: //四相八拍:A- ...

  3. Java基础06 组合

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经尝试去定义类.定义类,就是新建了一种类型(type).有了类,我们接着构造 ...

  4. React.js学习

    React.js学习之环境搭建 1 工欲善其事必先利其器:前端开发工具 1.1 WebStorm和Sublime Text Sublime Text:作为代码编辑器,Sublime Text的优点如下 ...

  5. Win32 进程间通信的分析与比较(13种方法)

    1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码.数据以及它可利用的系统资源(如文件.管道等)组成.多进程/多线 程是Windows操作系统的一个基本特征.M ...

  6. TIA Portal V12不能添加新的CPU

    4核AMD 740,10G内存,Win7 X64,打开TIA Portal V12,依旧慢如牛,鼠标指针转啊转,TIA窗口写着 无响应... 真没志气,STM32要是玩转了,坚决不用这老牛. 上图为正 ...

  7. Spring Tool Suite(简称STS)针对SimpleDateFormat.pase函数的实参值不做检验,异常直接默认值之

    Spring Tool Suite(简称STS)是 Spring 团队开发的一款基于Eclipse的IDE,旨在简化开发Spring MVC 应用的流程.可以自动生成spring相关的配置文件.比如a ...

  8. Java byte数据类型详解

    public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b ...

  9. android 设置字体颜色、EditText自己主动输入转换成大写字母的多种方式

    在TextView上面设置某一个字的字体颜色为指定颜色时,能够通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void ...

  10. SharePoint数据视图无法打开

    最近在折腾SharePoint,之前列表常用的“数据视图”居然不能打开,提示“没有安装Sharepoit foundation 数据兼容组件”如图: 上网G下.度下有说要删除注册表.要安装office ...