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 可访问的返回值。
错误 | 说明 |
---|---|
|
对象没有关联的键盘快捷方式。 |
|
自变量无效。 |
|
对象不支持此属性。 |
注解
访问键是菜单、菜单项或按钮或其他控件标签的文本中的带下划线字符。 例如,用户可以通过按 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 |