IAccessible::get_accKeyboardShortcut 方法 (oleacc.h)

IAccessible::get_accKeyboardShortcut 方法检索指定对象的快捷键或访问键,也称为助记键。 具有快捷键或访问键的所有对象都支持此属性。

语法

HRESULT get_accKeyboardShortcut(
  [in]          VARIANT varChild,
  [out, retval] BSTR    *pszKeyboardShortcut
);

参数

[in] varChild

类型: VARIANT

指定检索到的键盘快捷方式是属于 对象还是对象的子元素之一。 此参数是获取有关对象) 信息的CHILDID_SELF (,也可以是子 ID (以获取有关对象子元素的信息) 。 有关初始化 VARIANT 的详细信息,请参阅 如何在参数中使用子 ID

[out, retval] pszKeyboardShortcut

类型: BSTR*

接收标识键盘快捷方式的本地化字符串的 BSTR 的地址;如果没有与指定对象关联的键盘快捷方式,则为 NULL

返回值

类型: HRESULT

如果成功,则返回 S_OK。

如果未成功,则返回下表中的值之一或另一个标准 COM 错误代码。 服务器返回这些值,但客户端必须始终检查输出参数,以确保它们包含有效值。 有关详细信息,请参阅 检查 I 可访问的返回值

错误 说明
S_FALSE
对象没有关联的键盘快捷方式。
E_INVALIDARG
自变量无效。
DISP_E_MEMBERNOTFOUND
对象不支持此属性。

注解

访问键是菜单、菜单项或按钮或其他控件标签的文本中的带下划线字符。 例如,用户可以通过按 Alt 键来显示菜单,同时按指示的带下划线的键(例如 Alt+F)打开 File 菜单。 若要使用菜单项的访问键,包含该项的菜单必须处于活动状态。

工具栏按钮和菜单项等控件通常具有关联的快捷键,也称为键盘快捷键。 某些菜单项可能同时具有访问键和快捷键,有些菜单项可能只有一个。 例如,名为 New 的菜单项具有访问键 N 和快捷键 CTRL+N。 菜单不必处于活动状态,快捷键即可正常工作。

客户端开发人员注意:

如果此属性返回单个字符,则不能假定它是访问键或键盘快捷方式。 使用标准菜单项时,访问键由 IAccessible::get_accKeyboardShortcut 返回,快捷键作为 从 IAccessible::get_accName 返回的菜单项名称的一部分返回。 通常,访问键通常定义为 ALT + <字母>,键盘快捷方式往往为 Ctrl + <字母>。

服务器开发人员注意: 如果 UI 元素可以接收键盘焦点,则应公开元素的访问键。 如果 UI 元素无法接收键盘焦点 ((如工具栏图标) ),则应显示快捷键。

由于快捷键通常由应用程序而不是控件本身确定,因此服务器通常可以返回从窗口的标准可访问对象获取的值。

客户端示例

以下示例函数检索指定辅助对象或其子对象的键盘快捷方式,并将其打印到控制台。

HRESULT PrintShortcut(IAccessible* pAcc, long child)
{
    if (pAcc == NULL)
    {
        return E_INVALIDARG;
    }
    BSTR bstrShortcut;
    VARIANT varObj;
    varObj.vt = VT_I4;
    varObj.lVal = child;
    HRESULT hr = pAcc->get_accKeyboardShortcut(varObj, &bstrShortcut);
    if (hr == S_OK)
    {
        printf("Shortcut: %S\n", bstrShortcut);
        SysFreeString(bstrShortcut);
    }
    return hr;
}

要求

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

另请参阅

IAccessible

IAccessible::get_accName

KeyboardShortcut 属性

VARIANT