IAccessible::get_accFocus 方法 (oleacc.h)

IAccessible::get_accFocus 方法會擷取具有鍵盤焦點的物件。 所有可能接收鍵盤焦點的對象都必須支援這個屬性。

語法

HRESULT get_accFocus(
  [out, retval] VARIANT *pvarChild
);

參數

[out, retval] pvarChild

類型: VARIANT*

VARIANT 結構的位址,該結構會接收具有焦點之對象的相關信息。 下表描述 pvarID 中傳回的資訊。

意義
VT_EMPTY
無。 這個物件及其任何子系都沒有鍵盤焦點。
VT_I4
lVal CHILDID_SELF。 物件本身具有鍵盤焦點。
VT_I4
lVal 包含具有鍵盤焦點之子專案的子標識碼。
VT_DISPATCH
pdispVal 成員是具有鍵盤焦點之子物件的 IDispatch 介面 位址。

傳回值

類型: HRESULT

如果成功,則傳回 S_OK。

如果未成功,則會傳回下表中的其中一個值,或另一個標準 COM 錯誤碼。 伺服器會傳回這些值,但客戶端必須一律檢查輸出參數,以確保它們包含有效的值。 如需詳細資訊,請參閱 檢查 IAccessible 傳回值

錯誤 Description
S_FALSE
對像是視窗,但不是前景視窗。
DISP_E_MEMBERNOTFOUND
物件不支援這個屬性。

備註

鍵盤焦點的概念與使用中視窗的概念相關。 使用中視窗是用戶運作的前景視窗。 具有鍵盤焦點的物件是使用中視窗或使用中視窗的子物件。

容器內只有一個物件或項目隨時都有焦點。 具有鍵盤焦點的物件不一定是選取的物件。 如需選取範圍和焦點之間差異的詳細資訊,請參閱 選取範圍和焦點屬性和方法

這個方法會傳回 pvarIDIDispatch 介面指標或子標識碼。 如需如何使用 IDispatch 介面指標或子標識碼的詳細資訊,請參閱 如何在參數中使用子標識符。

如同其他 IAccessible 方法和函式,用戶端可能會因為用戶動作而收到 IAccessible 介面指標的錯誤。 如需詳細資訊,請參閱 接收 IAccessible 介面指標的錯誤

伺服器範例

下列範例程式代碼示範自定義單一選取清單框的這個方法可能實作。 如果控件沒有焦點,VT_EMPTY會由 HWND 的標準可存取物件在 variant 中傳回。 如果控件有焦點,而且已選取專案,則會傳回該專案的子標識符;如果沒有選取範圍,則會傳回CHILDID_SELF。

// m_pControl is the control object that is served by this implementation. 
// m_pStdAccessibleObject is the object returned by CreateStdAccessibleObject. 

HRESULT STDMETHODCALLTYPE AccServer::get_accFocus(VARIANT *pvarChild)
{
    FAIL_IF_NO_CONTROL;  // Macro that checks for existence of control. 

    HRESULT hr = m_pStdAccessibleObject->get_accFocus(pvarChild);  
    if (pvarChild->vt != VT_I4)
    {
        return hr;
    }
    else
    {
        int index = m_pControl->GetSelectedIndex();
        if (index <0)
        {
            pvarChild->lVal = CHILDID_SELF;
        }
        else
        {
            // Convert to 1-based index for child ID. 
            pvarChild->lVal = index + 1;
        }
    }
    return S_OK;
};


規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 oleacc.h
程式庫 Oleacc.lib
Dll Oleacc.dll
可轉散發套件 sp6 和更新版本和 Windows 95 Windows NT 4.0 上的 Active Accessibility 1.3 RDK

另請參閱

IAccessible

IAccessible::accSelect

IAccessible::get_accSelection

IDispatch

選取範圍和焦點屬性和方法