SetCapture()函数和ReleaseCapture()

参考自: 关于SetCapture() 和 ReleaseCapture()的用法

SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕捉。一旦窗口捕捉了鼠标,一切鼠标输入都针对该窗口,不管光标是不是在窗口的边界内。统一时刻只能有一个窗口捕捉鼠标。假如鼠标光标在另一个线程建立的窗口上,只要当鼠标键按下时体系才将鼠标输入指向指定的窗口。”

在你挪用SetCapture(hWnd)函数后,只是可以捕捉onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout鼠标音讯,然则平常我们是捕捉onmousemove和onmouseup两个音讯。须要只注重末了一句“假如鼠标光标在另一个线程建立的窗口上,只要当鼠标键按下时体系才将鼠标输入指向指定的窗口”的诠释,就是纵然你在一个窗口线程里使用了SetCapture(),但在别的窗口的上点击时会把鼠标音讯发给这个窗口,而不是本来的窗口。由于当鼠标在窗口外面点击的时刻,被点击的窗口取得核心,本来的SetCapture()也就失效了。

当你不在须要继承取得鼠标音讯就要应当挪用ReleaseCapture()释放掉,不然别的线程想挪用就会失利。记着:SetCapture()和ReleaseCapture()必需成对显现。
    原文作者:puhongru
    原文地址: https://segmentfault.com/a/1190000007120689
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞