Поделиться через


Использование прямых заметок

Использование прямой заметки для переопределения значения свойства

  1. Используйте функцию CoCreateInstance или CoCreateInstanceEx для создания объекта IAccPropServices .
  2. Вызовите метод IAccPropServices::SetHwndProp, передав HWND, идентификатор объекта, идентификатор дочернего элемента, переопределяемое свойство и variant , содержащий новое значение свойства. Этот шаг примечает значение.
  3. Отпустите указатели интерфейса и освободите память.

В следующем примере показано, как добавить заметки к свойству 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 модель автоматизации пользовательского интерфейса в элемент управления, можно указать идентификатор свойства модель автоматизации пользовательского интерфейса вместо идентификатора свойства Microsoft Active Accessibility. Список идентификаторов модель автоматизации пользовательского интерфейса см. в разделе Идентификаторы свойств.

Свойство Тип
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