代理对象的设计注意事项
代理和辅助对象设计取决于服务器 UI 元素的设计。 无论设计如何,UI 元素都必须在销毁代理对象之前立即通知其代理对象,以便代理对象适当地处理来自客户端的调用。
以下列表描述了两种设计可能性:
- 将实现 IAccessible 接口的代码放置在与实现用户界面元素的代码(如果用户界面代码易于扩展)相同的模块中。 在这种情况下,代理是“轻量级”,因为它所做的一切都是监视可访问对象的生命周期,转发对可访问对象的调用,并返回结果。
- 将实现 IAccessible 的代码放置在实现代理对象的代码所在的同一模块中。 在这种情况下,辅助对象使用内部函数获取有关 UI 元素的信息。
跟踪栏控件
实现跟踪条控件时,请使用轨道条样式 TBS_REVERSED 来提供更有意义的信息。 此样式将反转 IAccessible::get_accValue使用的规模。
对于没有此样式的垂直轨道条,IAccessible::get_accValue当跟踪条拇指位于控件顶部时返回零(0):当向底部滑动拇指时,值将增加。 使用 TBS_REVERSED 样式时,IAccessible::get_accValue当轨道条拇指位于顶部时返回 100 (100);当向底部移动跟踪条拇指时,数字会减少。
对于不带此样式的水平轨道条,当跟踪条拇指位于控件的左端时,将返回零(0):将跟踪条拇指移到右侧时,值将增加。 使用 TBS_REVERSED 样式时,IAccessible::get_accValue当跟踪条拇指位于左侧时返回 100 (100):当向右移动跟踪条拇指时,值会减少。