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


Рекомендации по проектированию прокси-объектов

Проектирование прокси-сервера и объектов со специальными возможностями зависит от структуры элементов пользовательского интерфейса сервера. Независимо от структуры, элемент пользовательского интерфейса должен уведомить свой прокси-объект непосредственно перед его уничтожением, чтобы прокси-объект обрабатывал вызовы от клиентов соответствующим образом.

В следующем списке описаны два варианта проектирования:

  • Поместите код, реализующий интерфейс IAccessible , в тот же модуль, что и код, реализующий элемент пользовательского интерфейса, если код пользовательского интерфейса легко расширяем. В этом случае прокси-сервер является "легким" в том смысле, что все, что он делает, — это отслеживать срок жизни доступного объекта, пересылать вызовы к объекту со специальными возможностями и возвращать результаты.
  • Поместите код, реализующий IAccess , в тот же модуль, что и код, реализующий прокси-объект. В этом случае объект со специальными возможностями использует внутренние функции для получения сведений об элементе пользовательского интерфейса.

Элементы управления trackbar

При реализации элементов управления trackbar используйте стиль TBS_REVERSED для предоставления более значимых сведений. Этот стиль изменяет масштаб, используемый iAccessible::get_accValue.

Для вертикальных дорожек без этого стиля IAccessible::get_accValue возвращает ноль (0), если большой палец панели находится в верхней части элемента управления; значения увеличиваются по мере скольжения большого пальца к нижнему краю. При использовании стиля TBS_REVERSEDфункция IAccessible::get_accValue возвращает 100 (сто), если большой палец трекбара находится вверху; при перемещении большого пальца в нижнее дно число уменьшается.

Для горизонтальных трекбаров без этого стиля возвращается ноль (0), если большой палец трекбара находится в левом конце элемента управления; при перемещении большого пальца вправо значения увеличиваются. При использовании стиля TBS_REVERSEDфункция IAccessible::get_accValue возвращает сто (100), если большой палец на панели управления находится слева; при перемещении большого пальца вправо значения уменьшаются.