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 에는 키보드 포커스가 있는 자식 요소의 자식 ID가 포함됩니다.
VT_DISPATCH
pdispVal 멤버는 키보드 포커스가 있는 자식 개체에 대한 IDispatch 인터페이스 의 주소입니다.

반환 값

형식: HRESULT

성공하면 S_OK를 반환합니다.

성공하지 못하면 다음 테이블의 값 중 하나 또는 다른 표준 COM 오류 코드를 반환합니다. 서버는 이러한 값을 반환하지만 클라이언트는 항상 출력 매개 변수를 검사 유효한 값을 포함해야 합니다. 자세한 내용은 IAccessible 반환 값 확인을 참조하세요.

오류 Description
S_FALSE
개체는 창이지만 포그라운드 창은 아닙니다.
DISP_E_MEMBERNOTFOUND
개체는 이 속성을 지원하지 않습니다.

설명

키보드 포커스의 개념은 활성 창의 개념과 관련이 있습니다. 활성 창은 사용자가 작동하는 전경 창입니다. 키보드 포커스가 있는 개체에는 활성 창 또는 활성 창의 자식 개체입니다.

컨테이너 내의 하나의 개체 또는 항목만 한 번에 포커스가 있습니다. 키보드 포커스가 있는 개체가 항상 선택된 개체가 아닌 경우 선택 영역과 포커스의 차이점에 대한 자세한 내용은 선택 및 포커스 속성 및 메서드를 참조하세요.

이 메서드는 iDispatch 인터페이스 포인터 또는 pvarID에 대한 자식 ID를 반환합니다. IDispatch 인터페이스 포인터 또는 자식 ID를 사용하는 방법에 대한 자세한 내용은 매개 변수에서 자식 ID를 사용하는 방법을 참조하세요.

다른 IAccessible 메서드 및 함수와 마찬가지로 클라이언트는 사용자 작업으로 인해 IAccessible 인터페이스 포인터에 대한 오류를 수신할 수 있습니다. 자세한 내용은 IAccessible 인터페이스 포인터에 대한 오류 수신을 참조하세요.

서버 예제

다음 예제 코드는 사용자 지정 단일 선택 목록 상자에 대해 이 메서드를 구현할 수 있는 방법을 보여줍니다. 컨트롤에 포커스가 없는 경우 VT_EMPTY HWND에 대한 표준 액세스 가능한 개체에 의해 변형에 반환됩니다. 컨트롤에 포커스가 있고 항목이 선택된 경우 해당 항목의 자식 ID가 반환됩니다. 선택 항목이 없으면 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 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 oleacc.h
라이브러리 Oleacc.lib
DLL Oleacc.dll
재배포 가능 파일 SP6 이상 및 Windows 95를 Windows NT 4.0의 활성 접근성 1.3 RDK

추가 정보

IAccessible

IAccessible::accSelect

IAccessible::get_accSelection

IDispatch

선택 및 포커스 속성 및 메서드