使用直接注释
使用直接注释替代属性的值
- 使用 CoCreateInstance 或 CoCreateInstanceEx 函数创建 IAccPropServices 对象。
- 调用 IAccPropServices::SetHwndProp,传递 HWND、对象 ID、子 ID、要重写的属性以及包含属性新值的 VARIANT 。 此步骤对值进行注释。
- 释放接口指针和可用内存。
以下示例演示如何批注静态文本控件的 Role 属性。
HRESULT CMyTextControl::SetAccessibleProperties()
{
// COM is assumed to be initialized...
IAccPropServices* pAccPropServices = NULL;
HRESULT hr = CoCreateInstance(CLSID_AccPropServices,
NULL, CLSCTX_SERVER, IID_IAccPropServices,
(void**)&pAccPropServices);
if (SUCCEEDED(hr))
{
// Annotating the Role of this object to be STATICTEXT
VARIANT var;
var.vt = VT_I4;
var.lVal = ROLE_SYSTEM_STATICTEXT;
hr = pAccPropServices->SetHwndProp(_hwnd,
OBJID_CLIENT,
CHILDID_SELF,
PROPID_ACC_ROLE,
var);
pAccPropServices->Release();
}
return hr;
}
指定值时支持的属性
指定值时,可以批注以下 Microsoft Active Accessibility 属性, (值必须是注释类型的直接批注) 。 若要替代或向控件添加 Microsoft UI 自动化 属性,可以指定 UI 自动化 属性 ID,而不是 Microsoft Active Accessibility 属性 ID。 有关UI 自动化 ID 的列表,请参阅属性标识符。
属性 | 类型 |
---|---|
PROPID_ACC_NAME | VT_BSTR |
PROPID_ACC_DESCRIPTION | VT_BSTR |
PROPID_ACC_ROLE | VT_I4 |
PROPID_ACC_STATE | VT_I4 |
PROPID_ACC_HELP | VT_BSTR |
PROPID_ACC_KEYBOARDSHORTCUT | VT_BSTR |
PROPID_ACC_DEFAULTACTION | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |