複製鏈接
請複製以下鏈接發送給好友

SetCapture

鎖定
函數功能:該函數在屬於當前線程的指定窗口裏設置鼠標捕獲。一旦窗口捕獲了鼠標,所有鼠標輸入都針對該窗口,無論光標是否在窗口的邊界內。同一時刻只能有一個窗口捕獲鼠標。如果鼠標光標在另一個線程創建的窗口上,只有當鼠標鍵按下時系統才將鼠標輸入指向指定的窗口。
中文名
SetCapture
函數原型
HWND SetCapture(HWND hwnd)
函數功能
當前線程的指定窗口裏設置鼠標捕獲
參    數
hWnd:當前線程裏要捕獲鼠標的窗口句柄

SetCapture作用及參數

函數原型:HWND SetCapture(HWND hwnd);
參數:
hWnd:當前線程裏要捕獲鼠標的窗口句柄。
返回值:返回值是上次捕獲鼠標的窗口句柄。如果不存在那樣的句柄,返回值是NULL。
備註:只有前台窗口才能捕獲鼠標。如果一個後台窗口想捕獲鼠標,則該窗口僅為其光標熱點在該窗口可見部份的鼠標事件接收消息。另外,即使前台窗口已捕獲了鼠標,用户也可點擊另一個窗口,將其調入前台。當一個窗口不再需要所有的鼠標輸入時,創建該窗口的線程應當調用函數ReleaseCapture來釋放鼠標。此函數不能被用來捕獲另一進程的鼠標輸入。
Windows 95:調用SetCapture會引起失去鼠標捕獲的窗口接收一個WM_CAPTURECHANGED消息。
速查:頭文件:Winuser.h:輸入庫:user32.lib。
Javascript鼠標捕獲
鼠標捕獲(setCapture)作用是將鼠標事件捕獲到當前文檔的指定的對象。這個對象會為當前應用程序或整個系統接收所有鼠標事件。

SetCapture鼠標事件

setCapture捕獲以下鼠標事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。
程序中主要是要捕獲onmousemove和onmouseup事件。
msdn的介紹中還説到setCapture有一個bool參數,用來設置在容器內的鼠標事件是否都被容器捕獲。
容器就是指調用setCapture的對象,大概意思就是:
參數為true時(默認)容器會捕獲容器內所有對象的鼠標事件,即容器內的對象不會觸發鼠標事件(跟容器外的對象一樣);
參數為false時容器不會捕獲容器內對象的鼠標事件,即容器內的對象可以正常地觸發事件和取消冒泡。