IViewObjectEx::QueryHitRect 方法 (ocidl.h)
指出矩形中的任何點是否在物件的指定繪圖層面內。
語法
HRESULT QueryHitRect(
[in] DWORD dwAspect,
[in] LPCRECT pRectBounds,
[in] LPCRECT pRectLoc,
[in] LONG lCloseHint,
[out] DWORD *pHitResult
);
參數
[in] dwAspect
要求的繪圖層面。
[in] pRectBounds
包含視窗之用戶端座標的物件周框。 此矩形是由容器計算並傳遞,讓物件可以有意義地解譯點擊位置。
[in] pRectLoc
點擊測試矩形,以 HIMETRIC 單位指定,相對於物件的左上角。
[in] lCloseHint
容器視為關閉的建議距離,以 HIMETRIC 單位為單位。 這個值是提示,而且物件可以自己的方式加以解譯。 物件也可以使用這個提示來大致推斷輸出解析度,以選擇點擊測試實作的廣泛性。
[out] pHitResult
傳回點擊相關信息的指標,表示為 HITRESULT 列舉值。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
這個方法不會針對要求的層面實作。 請改用 DVASPECT_CONTENT。 |
備註
容器可能需要測試物件是否與另一個物件的指定繪圖層面重疊。 他們可以藉由要求區域或至少有問題層面的周框來判斷物件是否重疊。 不過,執行此動作的更快速方式是呼叫 IViewObjectEx::QueryHitRect ,詢問物件是否與其中一個繪圖層面交集。
注意 不同於 IViewObjectEx::QueryHitPoint,此方法不會傳回HITRESULT_TRANSPARENT或HITRESULT_CLOSE。 它完全叫用或遺漏,如果矩形中沒有點擊任何點,則傳回HITRESULT_OUTSIDE,如果矩形中至少有一個點是點擊,則會傳回HITRESULT_HIT。
實作者的注意事項
至少需要支援 IViewObjectEx 的物件,才能針對DVASPECT_CONTENT層面實作這個方法。 對象不應該採取任何其他動作來響應這個方法,而不是傳回資訊;不應該有任何副作用。 如果是否有任何模棱兩可的點是否叫用,例如,因為座標未完全轉換,則每當矩形中的任何點可能叫用物件時,對象都應該傳回HITRESULT_HIT。 也就是說,可以宣告未實際轉譯之點的點擊,但永遠不會正確宣告物件所轉譯影像中任何點的遺漏。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ocidl.h |