SetCapture ReleaseCapture函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当 鼠标键 按下时系统才将鼠标输入指向指定的窗口。 目录
1 作用及参数 编辑函数原型 :HWND SetCapture(HWND hwnd);
参数:
hWnd :当前线程里要捕获鼠标的 窗口句柄 。 返回值:返回值是上次捕获鼠标的 窗口句柄 。如果不存在那样的句柄,返回值是NULL 。 备注:只有前台窗口才能捕获鼠标。如果一个 后台 窗口想捕获鼠标,则该窗口仅为其光标热点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点击另一个窗口,将其调入前台。当一个窗口不再需要所有的鼠标输入时,创建该窗口的线程应当调用函数 ReleaseCapture 来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。 Windows 95:调用 SetCapture 会引起失去鼠标捕获的窗口接收一个WM_CAPTURECHANGED消息。 速查:头文件:Winuser.h:输入库:user32.lib。 Javascript 鼠标捕获 鼠标捕获(setCapture)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前 应用程序 或整个系统接收所有鼠标事件。 2 鼠标事件 编辑setCapture捕获以下鼠标事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。 程序中主要是要捕获onmousemove和onmouseup事件。 msdn 的介绍中还说到setCapture有一个 bool 参数,用来设置在容器内的鼠标事件是否都被容器捕获。 容器就是指调用setCapture的对象,大概意思就是: 参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样); 参数为 false 时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
ReleaseCapture
编辑
函数功能:该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入(无论光标的位置在哪里),除非点击 鼠标键 时,光标热点在另一个线程的窗口中。 函数原型:BOOL ReleaseCapture(VOlD)
参数:无。
返回值:如果 函数调用 成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的 错误信息 ,请调用GetlastError函数。 备注:应用程序在调用函数SetCaPture之后调用此函数。 Windows 95:调用ReleaseCapture会引起失去鼠标捕获的窗口接收一个WM_CAPTURECHANGED消息。 速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows CE:1.0及以上版本;头文件:winuser.h;输入库:User32.lib。 (责任编辑:好模板) |