IAccessible::accSelect 方法 (oleacc.h)

IAccessible::accSelect 方法修改所选内容或移动指定对象的键盘焦点。 支持选择或接收键盘焦点的所有对象都必须支持此方法。

语法

HRESULT accSelect(
  [in] long    flagsSelect,
  [in] VARIANT varChild
);

参数

[in] flagsSelect

类型: long

指定要执行哪些选择或焦点操作。 此参数必须具有 SELFLAG 常量的组合。

[in] varChild

类型: VARIANT

指定所选对象。 如果值为CHILDID_SELF,则选择对象本身;如果为子 ID,则选择对象的子元素之一。 有关初始化 VARIANT 结构的详细信息,请参阅 如何在参数中使用子 ID

返回值

类型: HRESULT

如果成功,则返回 S_OK。

如果未成功,则返回下表中的值之一或其他标准 COM 错误代码

错误 说明
S_FALSE
未选择指定的对象。
E_INVALIDARG
自变量无效。 此返回值表示指定的 SELFLAG 组合无效,或者 SELFLAG 值对指定对象没有意义。 例如,单选列表框上不允许使用以下标志: SELFLAG_EXTENDSELECTIONSELFLAG_ADDSELECTIONSELFLAG_REMOVESELECTION
DISP_E_MEMBERNOTFOUND
对象不支持此方法。

注解

客户端应用程序使用此方法执行复杂的选择操作。 有关详细信息,请参阅 选择子对象。 此方法提供了以编程方式在应用程序之间切换输入焦点的最简单方法。 这适用于在 Windows 2000 上运行的应用程序。

注意: 此方法用于选择项,而不是文本。

客户端示例

以下示例函数选择屏幕上指定点处的项。 假定需要单个选择。

HRESULT SelectItemAtPoint(POINT point)
{
    VARIANT varItem;
    IAccessible* pAcc;
    HRESULT hr = AccessibleObjectFromPoint(point, &pAcc, &varItem);
    if ((hr == S_OK))
    {
        hr = pAcc->accSelect((SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION), varItem);
        VariantClear(&varItem);
        pAcc->Release();
    }
    return hr;
}

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 oleacc.h
Library Oleacc.lib
DLL Oleacc.dll
可再发行组件 具有 SP6 及更高版本和 Windows 95 的 Windows NT 4.0 上的 Active Accessibility 1.3 RDK

另请参阅

IAccessible

IAccessible::get_accFocus

IAccessible::get_accSelection

SELFLAG

选择和焦点属性和方法

VARIANT