关于SetCapture() 和 ReleaseCapture()的使用方法
方法 关于 使用
2023-09-14 09:10:25 时间
查MSND,对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗体里设置鼠标捕获。一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内。同一时刻仅仅能有一个窗体捕获鼠标。假设鼠标光标在还有一个线程创建的窗体上,仅仅有当鼠标键按下时系统才将鼠标输入指向指定的窗体。”一開始我看这个解释误觉得了仅仅要在属于窗体里的一个线程调用了SetCapture(hWnd)把hWnd设为当前的窗体句柄,那么以后的全部窗体消息都会发到我们指定的那个窗体消息队列中。这种理解是错误的!!!在你调用SetCapture(hWnd)函数后,仅仅是可以捕获onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout鼠标消息,可是一般我们是捕获onmousemove和onmouseup两个消息。须要仅仅注意最后一句“假设鼠标光标在还有一个线程创建的窗体上,仅仅有当鼠标键按下时系统才将鼠标输入指向指定的窗体”的解释,就是即使你在一个窗体线程里对了了SetCapture(),但你在别的窗体的上点击了相同会把鼠标消息发个这个窗体而是我们通过调用SetCapture()设定那个窗体。由于当鼠标在窗体外面点击的时候,被点击的窗体获得焦点,原来的SetCapture()也就失效了。
当你不在须要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉,否则别的线程想调用就会失败。记住:SetCapture()和ReleaseCapture()必须成对呈现。
相关文章
- 渗透测试|开发过程中关于重放攻击的防御方法
- 关于Linux中使用USE(使用率/饱和度/错误)方法分析系统性能的一些笔记
- 关于Kubernetes集群中常见问题的排查方法的一些笔记
- 关于数据可视化的方法和工具介绍
- 关于Linux系统keepalive的使用方法详解
- 关于Linux漏洞扫描的工具lynis使用方法解析
- 关于Oracle listener日志解析利器的使用方法
- 关于引入多个jquery冲突的问题(附一个很好用的validate前端验证框架及使用方法)详解编程语言
- Oracle 中更新所有字段的简单方法(oracle更新所有字段)
- MySQL获取最新一条记录的方法(mysql最新一条记录)
- 关于Linux的一些常见问题和解决方法(onlinux)
- MySQL视图详解及使用方法(mysql中关于视图)
- 数据类型的详细解释与使用方法(MySQL中关于各类)
- mysql远程连接数据库的方法集合
- 关于Appserv无法打开localhost问题的解决方法
- JavaScript中关于indexOf的使用方法与问题小结
- 关于JavaScript的with语句的使用方法
- 关于jQuery的inArray方法介绍
- 关于MYSQL远程登录的授权方法命令
- 关于php正则匹配汉字的方法介绍
- 关于ftp下显示的时间和系统时间不一致的解决方法
- 关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
- 关于IE中getElementsByClassName不能用的问题解决方法
- javascript教程:关于if简写语句优化的方法