IPointerInactive::OnInactiveSetCursor 方法 (ocidl.h)
設定非使用中物件的滑鼠指標。 當非使用中對象位於滑鼠指標下時,容器會在收到WM_SETCURSOR方法時呼叫此方法。
語法
HRESULT OnInactiveSetCursor(
[in] LPCRECT pRectBounds,
[in] LONG x,
[in] LONG y,
[in] DWORD dwMouseMsg,
[in] BOOL fSetAlways
);
參數
[in] pRectBounds
在包含視窗的用戶端座標單位中指定的物件周框。 此參數會告知物件在收到WM_SETCURSOR訊息時,畫面上的確切位置和大小。 此值是以用戶端座標系統的單位指定。
[in] x
滑鼠位置的水準座標,以用戶端包含視窗的單位為單位。
[in] y
滑鼠位置的垂直座標,以用戶端包含視窗的單位為單位。
[in] dwMouseMsg
發生WM_SETCURSOR的滑鼠訊息標識碼。
[in] fSetAlways
如果此值為 TRUE,則對象必須設定游標;如果此值為 FALSE,則物件不一定要設定數據指標,而且應該在該情況下傳回S_FALSE。
傳回值
這個方法可以傳回標準傳回值E_FAIL,以及下列值。
傳回碼 | 描述 |
---|---|
|
已成功設定滑鼠指標。 |
|
物件未設定數據指標;容器應該設定游標,或再次呼叫物件,並將 參數 fSetAlways 設定為 TRUE。 |
備註
容器會呼叫此方法,藉由呼叫 IPointerInactive::GetActivationPolicy 方法來檢查對象的啟用原則之後,將滑鼠指標設定在非作用中物件上。 如果物件尚未要求透過該呼叫就地啟動,只要滑鼠指標停留在物件上,容器就會呼叫 OnInactiveSetCursor ,將後續WM_SETCURSOR訊息分派至非作用中物件。
為了避免四捨五入錯誤,並讓對象實作工具上的作業更容易,此方法會採用其包含客戶端窗口單位的視窗座標,也就是顯示對象的視窗,而不是一般的 HIMETRIC 單位。 因此,當物件為使用中和非使用中時,可以使用相同的座標和程式代碼路徑。 視窗座標會指定滑鼠位置。 周框也會在相同的座標系統中指定。
OnInactiveSetCursor 會採用其他參數 fSetAlways,指出物件是否必須設定數據指標。 容器應該先使用此參數 FALSE 呼叫這個方法。 物件可能會傳回S_FALSE,表示它未設定游標。 在此情況下,容器應該設定數據指標本身,如果不想這麼做,請再次呼叫 OnInactiveSetCursor 方法, 並將 fSetAlways 設為 TRUE。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ocidl.h |