IAccessible::get_accKeyboardShortcut 方法 (oleacc.h)
IAccessible::get_accKeyboardShortcut 方法會擷取指定物件的快捷鍵或訪問鍵,也稱為助記鍵。 具有快捷鍵或訪問鍵的所有物件都支援這個屬性。
語法
HRESULT get_accKeyboardShortcut(
[in] VARIANT varChild,
[out, retval] BSTR *pszKeyboardShortcut
);
參數
[in] varChild
類型: VARIANT
指定擷取的鍵盤快捷方式是否屬於物件或其中一個物件的子專案。 此參數CHILDID_SELF (取得对象) 的相關信息或子標識碼 (,以取得對象子元素的相關信息) 。 如需初始化 VARIANT 的詳細資訊,請參閱 如何在參數中使用子標識碼。
[out, retval] pszKeyboardShortcut
類型: BSTR*
BSTR 的位址,該字串接收可識別鍵盤快捷方式的當地語系化字串,如果沒有與指定的物件建立關聯,則為 NULL。
傳回值
類型: HRESULT
如果成功,則傳回 S_OK。
如果未成功,則會傳回下表中的其中一個值,或另一個標準 COM 錯誤碼。 伺服器會傳回這些值,但客戶端必須一律檢查輸出參數,以確保它們包含有效的值。 如需詳細資訊,請參閱 檢查 IAccessible 傳回值。
錯誤 | Description |
---|---|
|
對象沒有相關聯的鍵盤快捷方式。 |
|
引數無效。 |
|
物件不支援這個屬性。 |
備註
訪問鍵是功能表、功能表項或按鈕或其他控制件之標籤文字中的加底線字元。 例如,使用者可以按下 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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | oleacc.h |
程式庫 | Oleacc.lib |
Dll | Oleacc.dll |
可轉散發套件 | sp6 和更新版本和 Windows 95 Windows NT 4.0 上的 Active Accessibility 1.3 RDK |