IAccessible::accLocation 方法 (oleacc.h)
IAccessible::accLocation方法會擷取指定物件的目前螢幕位置。 所有視覺物件都必須支援這個方法。 音效物件不支援這個方法。
語法
HRESULT accLocation(
[out] long *pxLeft,
[out] long *pyTop,
[out] long *pcxWidth,
[out] long *pcyHeight,
[in] VARIANT varChild
);
參數
[out] pxLeft
類型: long*
位址,在實體螢幕座標中,接收物件位置左上角界限的 x 座標變數。
[out] pyTop
類型: long*
位址,在實體螢幕座標中,接收物件位置左上角界限的 Y 座標變數。
[out] pcxWidth
類型: long*
接收物件寬度之變數的位址,以圖元為單位。
[out] pcyHeight
類型: long*
接收物件高度之變數的位址,以圖元為單位。
[in] varChild
類型: VARIANT
指定伺服器傳回的位置是否應該是 物件或其中一個物件子專案的位置。 此參數CHILDID_SELF (取得物件) 的相關資訊或子識別碼 (,以取得物件子項目的相關資訊) 。 如需初始化 VARIANT 結構的詳細資訊,請參閱 如何在參數中使用子識別碼。
傳回值
類型: HRESULT
如果成功,則傳回 S_OK。 用戶端必須一律檢查輸出參數是否包含有效的值。
如果未成功,則會傳回下表中的其中一個值,或另一個標準 COM 錯誤碼。 如需詳細資訊,請參閱 檢查 IAccessible 傳回值。
錯誤 | 描述 |
---|---|
|
物件不支援這個方法。 |
|
引數無效。 |
備註
這個方法會擷取物件的周框。 如果物件具有非矩形圖形,這個方法會傳回完全包含整個物件區域的最小矩形。 若為非矩形物件,若使用 IAccessible::accHitTest 進行測試,物件的周框矩形座標可能會失敗。 這類非矩形物件的範例是大型圖示模式中的清單檢視專案,其中單一專案具有圖示的矩形,以及圖示文字的另一個矩形。 因為 accLocation 會傳回周框,所以該矩形中的所有點都不會在物件的實際界限內。 周框內的某些點可能不在 物件上。 如需詳細資訊,請參閱 流覽點擊測試與螢幕位置。
注意: 這個方法會傳回寬度和高度。 如果您想要右和下座標,請使用向右 = 左 + 寬度來計算它們,而下 = 上 + 高度。
伺服器範例
下列範例顯示自訂清單方塊方法的可能實作,其清單專案為子專案。 對於清單方塊本身,呼叫會傳遞至標準可存取物件,這會傳回視窗的螢幕座標。
// m_pStdAccessibleObject is the standard accessible object for the control window.
// m_pControl is the object that represents the control. Its GetItemRect method
// retrieves the screen coordinates of the specified item in a zero-based collection.
//
HRESULT STDMETHODCALLTYPE AccServer::accLocation(
long *pxLeft,
long *pyTop,
long *pcxWidth,
long *pcyHeight,
VARIANT varChild)
{
*pxLeft = 0;
*pyTop = 0;
*pcxWidth = 0;
*pcyHeight = 0;
if (varChild.vt != VT_I4)
{
return E_INVALIDARG;
}
if (varChild.lVal == CHILDID_SELF)
{
return m_pStdAccessibleObject->accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varChild);
}
else
{
RECT rect;
if (m_pControl->GetItemRect(varChild.lVal - 1, &rect) == FALSE)
{
return E_INVALIDARG;
}
else
{
*pxLeft = rect.left;
*pyTop = rect.top;
*pcxWidth = rect.right - rect.left;
*pcyHeight = rect.bottom - rect.top;
return S_OK;
}
}
};
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | oleacc.h |
程式庫 | Oleacc.lib |
Dll | Oleacc.dll |
可轉散發套件 | Windows NT 4.0 上的 Active Accessibility 1.3 RDK 與 SP6 和更新版本和 Windows 95 |