SetCapture到底是什么?
2024-08-29 23:30:18
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。 函数原型:HWND SetCapture(HWND hwnd); 参数: hWnd:当前线程里要捕获鼠标的窗口句柄。 返回值:返回值是上次捕获鼠标的窗口句柄。如果不存在那样的句柄,返回值是NULL。 备注:只有前台窗口才能捕获鼠标。如果一个后台窗口想捕获鼠标,则该窗口仅为其光标热点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点击另一个窗口,将其调入前台。当一个窗口不再需要所有的鼠标输入时,创建该窗口的线程应当调用函数ReleaseCapture来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。 鼠标事件: setCapture捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。 程序中主要是要捕获onmousemove和onmouseup事件。 msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。 容器就是指调用setCapture的对象,大概意思就是: 参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样); 参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
最新文章
- charing animation
- 搞懂 SynchronizationContext(第一部分)【翻译】
- 利用target的特性,可以实现纯css的tab效果切换
- java发展史与java的语言特性
- SpringMVC数据验证
- AnyChartStock去除水印方法
- ios开发之NavBar和TarBar使用技巧
- JAVAMAIL手动发送邮件
- std::numeric_limits<;int>;::max() error C2589: &#39;(&#39; : illegal token on right side of &#39;::&#39; 解决办法
- An error has occurred,See error log for more details
- webpack4 系列教程(十六):开发模式和生产模式&#183;实战
- pickle详解
- idea本地运行JavaWeb项目
- json替换jsonp实现跨域请求
- 人机猜拳游戏Java
- mysql攻防之写入漏洞
- DOS下的安全空间
- Backlog和冲刺结果以及产品Demo市场调研
- linux用户权限 ->; ACL访问控制
- [Sass] Level 3: Mixin -- Ex
热门文章
- async &; await (转载)
- 怎么利用jquery.form 提交form
- 限制线程数 Limit the number of threads started by colly 随机延迟
- python cookbook第三版学习笔记七:python解析csv,json,xml文件
- 用keytool创建Keystore和Trustsotre文件只需五步
- linux下 python源码包解压报错
- iOS 使用GitHub托管代码
- 数据结构ADT是什么
- ping: sendto: Network is unreachable【转】
- 算法(Algorithms)第4版 练习 1.3.10