zoukankan      html  css  js  c++  java
  • 关于SetCapture() 和 ReleaseCapture()的使用方法

       查MSND,SetCapture()函数的说明为:“该函数在属于当前线程的指定窗体里设置鼠标捕获。一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内。同一时刻仅仅能有一个窗体捕获鼠标。假设鼠标光标在还有一个线程创建的窗体上,仅仅有当鼠标键按下时系统才将鼠标输入指向指定的窗体。”一開始我看这个解释误觉得了仅仅要在属于窗体里的一个线程调用了SetCapture(hWnd)hWnd设为当前的窗体句柄,那么以后的全部窗体消息都会发到我们指定的那个窗体消息队列中。这种理解是错误的!!!在你调用SetCapture(hWnd)函数后,仅仅是可以捕获onmousedownonmouseuponmousemoveonclickondblclickonmouseoveronmouseout鼠标消息,可是一般我们是捕获onmousemoveonmouseup两个消息。须要仅仅注意最后一句“假设鼠标光标在还有一个线程创建的窗体上,仅仅有当鼠标键按下时系统才将鼠标输入指向指定的窗体”的解释,就是即使你在一个窗体线程里对了了SetCapture(),但你在别的窗体的上点击了相同会把鼠标消息发个这个窗体而是我们通过调用SetCapture()设定那个窗体。由于当鼠标在窗体外面点击的时候,被点击的窗体获得焦点,原来的SetCapture()也就失效了。

        当你不在须要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉,否则别的线程想调用就会失败。记住:SetCapture()和ReleaseCapture()必须成对呈现。

  • 相关阅读:
    [转]使用Composer管理PHP依赖关系
    Php环境下载(PHPNow)安装
    精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具
    八款强大的jQuery图片滑块动画插件
    JavaScript prototype.js提升JavaScript开发效率
    JS Message 网页消息提醒
    Vis.js图表插件
    动态算法学习
    GPS功能:百度路书自定义【轨迹回放】
    CSS美化页面滚动条
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4286923.html
Copyright © 2011-2022 走看看